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