Вычислить координаты вершин правильного многоугольника
Я пишу программу, в которой мне нужно рисовать многоугольники с произвольным числом сторон, каждый из которых переводится по заданной формуле, которая динамически изменяется. Здесь задействована довольно интересная математика, но я застрял в этой проблеме.
Как я могу рассчитать координаты вершин правильного многоугольника (тот, в котором все углы равны),учитывая только количество сторонИ в идеале (но не обязательно) иметь начало координат в центре?
Например: шестиугольник может иметь следующие точки (всеfloat
s):
( 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 # были бы полезны. Я даже не знаю с чего начать.Как мне это реализовать? Это вообще возможно ?!
Спасибо.