Finding the center of an n-gon (circle) based on angle and side-length

1. Jan 7, 2013

STENDEC

I hope this is self-evident to someone, i'm struggling.

I have a program that draws circles (n-gons really) of various sizes, but by translating-rotating-translating-rotating-..., not by x=sin/y=cos. That works as intended, but my wish is to offset the circle so that its center is (0,0) in the coordinate system. For that i need its center. Currently the circle itself originates from- and hence touches the (0,0) coordinates, so its center is somewhere above, in the y-axis.

Position of ? is sought after. A wider angle would result in ? rising for instance.

I found lots of tutorials on how to do it on paper using dividers and i also considered that it's a isosceles triangle, but it seems all textbook examples assume that one of the symmetric sides is already known.

2. Jan 7, 2013

Staff: Mentor

you could use similar triangles and some trig to get the radius along the y-axis.

Notice you can extend a perpendicular bisector from the first n-gon side which intersects the y-axis

so that 1/2 the n-gon side is the short edge the perpendicular creates the right angle and the y-axis is the hypotenuse.

This triangle is similar to the one formed by the n-gon edge and the x-axis.

So I get something like:

radius along y-axis = (1/2 n-gon side) / sin theta

Last edited: Jan 7, 2013
3. Jan 7, 2013

STENDEC

Yes, you're right. After some more reading and pondering i came to this solution:

$\alpha =$ angle in degrees
$s =$ segment length

To get the inner angle between the sides, we subtract from a half-circle. We then divide by two, to get the inner angle of the isosceles triangle:
$\beta = (180 - \alpha) \div 2$

$\phi = \beta\times\frac\pi{180}$

Distance to center point can then be gotten from $s\div 2 * tan(\phi)$.