X,Y Coordinates Circle, Different Plane

AI Thread Summary
To draw spokes in a circle with an origin at (200, 200), the correct formulas for the coordinates are X = 200 + cos(t) * 200 and Y = 200 - sin(t) * 200, considering the inverted Y-axis. The user initially struggled with angle units, mistakenly using degrees instead of radians for the Math.cos and Math.sin functions in Java. After correcting the angle conversion, the user found that the points did not align as expected, leading to confusion about the angle representation. Ultimately, the issue was resolved by rotating the endpoints by X radians, allowing the desired spokes to be drawn correctly. The discussion highlights the importance of understanding coordinate transformations and angle units in programming graphics.
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 180/\pi 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 2\pi radians to cover a circle. Then \pi= 3.14 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:
Suppose ,instead of the usual x,y coordinate system with an I basis vector along the x -axis and a corresponding j basis vector along the y-axis we instead have a different pair of basis vectors ,call them e and f along their respective axes. I have seen that this is an important subject in maths My question is what physical applications does such a model apply to? I am asking here because I have devoted quite a lot of time in the past to understanding convectors and the dual...
Insights auto threads is broken atm, so I'm manually creating these for new Insight articles. In Dirac’s Principles of Quantum Mechanics published in 1930 he introduced a “convenient notation” he referred to as a “delta function” which he treated as a continuum analog to the discrete Kronecker delta. The Kronecker delta is simply the indexed components of the identity operator in matrix algebra Source: https://www.physicsforums.com/insights/what-exactly-is-diracs-delta-function/ by...
Back
Top