X,Y Coordinates Circle, Different Plane

Click For Summary

Discussion Overview

The discussion revolves around the mathematical representation of points on a circle in a programming context, specifically for drawing spokes in a circle. Participants explore the implications of coordinate transformations, particularly when the circle's center is shifted and the Y-axis is inverted.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Homework-related

Main Points Raised

  • John describes his need to draw spokes in a circle, providing initial equations for a unit circle and expressing confusion about the coordinates for a circle centered at (200, 200) with an inverted Y-axis.
  • Some participants suggest checking the angle units (degrees vs. radians) used in the trigonometric functions, noting that Java's Math.cos and Math.sin expect radians.
  • John acknowledges the angle unit issue and mentions a workaround involving rotating endpoints, but later expresses that the points still do not reach the circumference as expected.
  • Another participant proposes adjusting the Y-coordinate formula to account for the inverted Y-axis, suggesting Y = 200 - sin(t) * 200 instead of Y = 200 + sin(t) * 200.
  • There is a clarification regarding the values of t, with a participant stating that t should range from 0 to 2π radians to cover the full circle.

Areas of Agreement / Disagreement

Participants generally agree on the need to convert angles to radians and the importance of adjusting for the inverted Y-axis. However, there remains uncertainty regarding the correct implementation of the formulas and the behavior of the points derived from them.

Contextual Notes

There are unresolved aspects regarding the exact implementation of the formulas and the interpretation of angles, particularly in relation to the inverted Y-axis and the range of t values.

MathFlop
Messages
2
Reaction score
0
Hi All

I'm a programmer but hopeless at maths, new to this forum so seriously hoping you can help please.

I need to draw spokes in a circle as part of a program. Like a dartboard or spokes of a wheel.


X = cos(t) and
Y = sin(t)
For a unit circle where t is the angle.

That’s all ok.

Unit circle has origin of 0,0

My circle has an origin 200,200.

Unit circle has coordinates as so:
East: 1,0
North: 0,1
West: -1,0
South: 0,-1

My circle has coordinates as follows:
East: 400,200
North: 200,0
West: 0,200
South: 200,400

Where north south east and west are the outermost points of the circle.
Note that in my circle the Y axis is inverted.

I tried:
X = 200 + cos(t) * 200
Y = 200 + sin(t) * 200

This gets me points on the circumference of the circle for each value of t (the angle).
However the points derived do not correspond to anywhere near where I want them to be. t = 0 is correct, t = 1 gives me a point that looks like an angle greater than 180 degrees.

I just cannot figure this out, hoping you can provide some help, please.

Thank You
John
 
Mathematics news on Phys.org
Are you sure you are putting in the angle in the right units? Check if in the language you are using, sin and cos accept an argument in degrees or in radians. Because your equations do parametrize a circle of radius 100 with center point (200, 200) (starting east going counter clockwise).
 
Hi CompuChip

Thanks very much for your reply.

You were exactly correct.

I'm using Java.

The Math.cos( a ) and Math.sin( a ) methods do expect 'a' to be in radians not degrees.

So... I translated my angle to radians before submitting to the Math.cos and Math.sin methods.

Now, using that formula previously provided the line does not reach the circumference for every given angle and the angle is still seemiingly random (although probably not, just seemingly).

Anyway, I've solved my delima through a different means. I was able to rotate the end points by X radians. This works for me.

For anyone interested, the Java code is as follows.

Code:
//Within the public void paint( Graphics g ) method:
//After drawing the circle with radius = 200 and origin 0, 0
//Origin 0, 0 remember is the top left point of the square that encloses the circle.
//This gives center points for the circle at 200, 200

Graphics2D g2d = (Graphics2D)g;
g2d.translate(200, 200); //Translate to origin 200, 200 from 0, 0;
  			
for( int i=0; i<NUMBER_OF_LINES; i++ ){ //NUMBER_OF_LINES = num of spokes
g2d.drawLine(0,0,0,radius);
g2d.rotate(2*Math.PI/NUMBER_OF_LINES);
}

Thanks again
John.
 
MathFlop said:
Hi All

I'm a programmer but hopeless at maths, new to this forum so seriously hoping you can help please.

I need to draw spokes in a circle as part of a program. Like a dartboard or spokes of a wheel.


X = cos(t) and
Y = sin(t)
For a unit circle where t is the angle.
For what values of t?

That’s all ok.

Unit circle has origin of 0,0

My circle has an origin 200,200.

Unit circle has coordinates as so:
East: 1,0
North: 0,1
West: -1,0
South: 0,-1

My circle has coordinates as follows:
East: 400,200
North: 200,0
West: 0,200
South: 200,400

Where north south east and west are the outermost points of the circle.
Note that in my circle the Y axis is inverted.

I tried:
X = 200 + cos(t) * 200
Y = 200 + sin(t) * 200
Yes, that will work.- except that you said you had "reversed" the y axis. If that is so, you want Y= 200- sin(t)* 200.

This gets me points on the circumference of the circle for each value of t (the angle).
However the points derived do not correspond to anywhere near where I want them to be. t = 0 is correct, t = 1 gives me a point that looks like an angle greater than 180 degrees.
No, it wont. t= 1 radian corresponds to [itex]180/\pi[/itex] degrees, smaller than 180 degrees. It's probably because you did not take into account that swapping of the Y axis. You want t going from 0 to [itex]2\pi[/itex] radians to cover a circle. Then [itex]\pi= 3.14[/itex] radians, approximately, will correspond to 180 degrees[/itex].

I just cannot figure this out, hoping you can provide some help, please.

Thank You
John
 
Last edited by a moderator:

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
839
Replies
6
Views
1K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
8
Views
3K
Replies
20
Views
4K
  • · Replies 20 ·
Replies
20
Views
4K