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