Koordinaten der Eckpunkte eines regulären Polygons berechnen

Ich schreibe ein Programm, in dem ich Polygone mit einer beliebigen Anzahl von Seiten zeichnen muss, von denen jede durch eine gegebene Formel übersetzt wird, die sich dynamisch ändert. Es handelt sich um eine interessante Mathematik, aber ich bleibe bei diesem Problem.

Wie kann ich die Koordinaten der Eckpunkte eines regelmäßigen Polygons berechnen (eines, bei dem alle Winkel gleich sind), nur die Anzahl der Seiten und idealerweise (aber nicht unbedingt) den Ursprung in der Mitte haben?

Zum Beispiel: Ein Sechseck könnte die folgenden Punkte haben (alle sindfloats):

( 1.5  ,  0.5 *Math.Sqrt(3) )
( 0    ,  1   *Math.Sqrt(3) )
(-1.5  ,  0.5 *Math.Sqrt(3) )
(-1.5  , -0.5 *Math.Sqrt(3) )
( 0    , -1   *Math.Sqrt(3) )
( 1.5  , -0.5 *Math.Sqrt(3) )

Meine Methode sieht so aus:

void InitPolygonVertexCoords(RegularPolygon poly)

und die Koordinaten müssen hinzugefügt werden (oder etwas Ähnliches, wie eine Liste):

Point[] _polygonVertexPoints;

Ich interessiere mich hauptsächlich für den Algorithmus hier, aber Beispiele in C # wären nützlich. Ich weiß nicht mal, wo ich anfangen soll.Wie soll ich es implementieren? Ist es überhaupt möglich?

Vielen Dank

Antworten auf die Frage(14)

Ihre Antwort auf die Frage