[Math] Finding points relating to the edge of a circle in an x,y coordinate system

circlescoordinate systemsrandomtrigonometry

My question is a bit hard for me to express, so please bear with me. I never got far in trig, and haven't done much on the subject in years; trying to get back into it as it's a pretty major part of physics and I'm starting game development as a hobby.

Basically, I want to draw a pattern in the centre of a screen. That pattern will consist of a random amount of lines, all the same random length. These lines will all originate from one centre point, and will all be evenly spaced.

I'm working with a grid of pixels. Anyone familiar with graphical programming will know that most pixel grids start with the top left 0,0 in an x,y co-ordinate system. There are no negative points. Say my grid is 500×500. The centre pixel will be located at 250,250. 0,0 is the top-left pixel, 500,500 is the bottom right. All measurements in this question are in pixels.

Now say that this centre pixel, 250,250, is the exact centre of a circle. From now on let's call this centre point xy. The radius of the circle is r (assume it fits inside the grid).

There is another variable in play. Let's call it a. a is the amount of lines I want drawn from the centre of the circle to the edge of the circle, all evenly spaced (so r is the length of each line). I'm assuming that in order to do this, I have to do this: 360 / a, which gives me a degree (I'm totally making these variable names up) which I will somehow use to evenly space the lines. This leads to the question!

Given xy, r & a, how can I go about getting the x & y co-ordinates of the lines' end-points?

I hope this is clear enough! Please let me know if I need to clarify anything.

Best Answer

Each line extends from $(x,y)$ to $(x+r \cos \theta, y+r \sin \theta)$. You are right that if you want $a$ lines to fill up the circle, they should be spaced at $\frac {360}a$ degree intervals. So use $\theta = \frac {360n}a$ for $n=0,1,2,\ldots a-1$