8
$\begingroup$

Given the regular polygon's side count $n$, the circumscribed radius $r$ and the center coordinates $(x,y)$ of the circumscribed circle,

How to calculate the coordinates of all polygon's vertices if one of the vertices coordinates are $(x,?)$?

$\endgroup$
  • 1
    $\begingroup$ Do you know complex numbers? $\endgroup$ – davidlowryduda Mar 6 '12 at 18:16
  • $\begingroup$ @mixedmath i? $\endgroup$ – Cobold Mar 6 '12 at 18:19
7
$\begingroup$

One vertex is $(x, y+r)$ or $(x, y-r)$. I'll assume the former (the latter case is similar, just swap $r$ and $-r$). The vertices will have coordinates $(x+r\sin\theta,y+r\cos\theta)$, where $\theta$ is an integer multiple of $\frac{2\pi}{n}$. ($\frac{360}{n}$ if you prefer degrees to radians.)

$\endgroup$
  • $\begingroup$ I don't need the area, I need the coordinates of the polygon's vertices. $\endgroup$ – Cobold Mar 6 '12 at 18:34
  • $\begingroup$ @Cobold: Silly me. I'll work that out for you in a minute. $\endgroup$ – Brett Frankel Mar 6 '12 at 18:36
  • $\begingroup$ Shouldn't it be $ (x + r cos \theta , y + r sin \theta ) $ (switch $sin$ and $cos$)? $\endgroup$ – jasonszhao Jun 2 '16 at 18:39
  • $\begingroup$ @jasonszhao both will work, it's just a question of the order the vertices are created. As written in the answer, the first vertex drawn (when $\theta = 0$) will be the north-most one. The way you have it, the first vertex would be the west-most one. $\endgroup$ – bgschiller Aug 10 '17 at 0:18
4
$\begingroup$

Supposing you know complex numbers, we care only about polygons around the origin which are inscribed in the unit circle. If a vertex is at $e^{i\omega}$, then the other n vertices will be at $e^{i(\omega + 2\pi k/n)}$ for $k$ up to $n$.

Then, if they're not on the unit circle, multiply everything by the radius.

If it's not centered at the origin, translate it to that spot instead.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.