У меня есть некоторые свойства, определенные пользователем, и затем я хочу использовать их для автоматической генерации правильного многоугольника. Свойства: центр x, центр y, радиус и количество вершин. Я хотел бы знать, как рассчитать координаты х и у всех вершин правильного многоугольника. Я уже пытался сделать как Рассчитать координаты вершин правильного многоугольника обсуждение. Но это всегда дает мне неправильные координаты. Мой текущий код выглядит следующим образом (C ++):
#define DOUBLE(a) ((a)*(a))
...
if(radius <= 0 || vertices < 3)
return NULL;
Polygon* poly = new Polygon;
double angle = DOUBLE(M_PI) / vertices;
for(long i = 0; i < vertices; i++)
{
double a = (angle * i);
poly->add(centerX + radius * cos(a), centerY + radius * sin(a));
}
return poly;