Вычислить координаты вершин правильного многоугольника

Я пишу программу, в которой мне нужно рисовать многоугольники с произвольным числом сторон, каждый из которых переводится по заданной формуле, которая динамически изменяется. Здесь задействована довольно интересная математика, но я застрял в этой проблеме.

Как я могу рассчитать координаты вершин правильного многоугольника (тот, в котором все углы равны),учитывая только количество сторонИ в идеале (но не обязательно) иметь начало координат в центре?

Например: шестиугольник может иметь следующие точки (всеfloats):

( 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) )

Мой метод выглядит так:

void InitPolygonVertexCoords(RegularPolygon poly)

и координаты должны быть добавлены к этому (или что-то подобное, как список):

Point[] _polygonVertexPoints;

Меня интересует в основном алгоритм, но примеры на C # были бы полезны. Я даже не знаю с чего начать.Как мне это реализовать? Это вообще возможно ?!

Спасибо.

Ответы на вопрос(7)

Ваш ответ на вопрос