Вращение многоугольника на глобальной оси с учетом его точек - PullRequest
0 голосов
/ 09 апреля 2020

Учитывая std::vector<Point>, где Point хранит координаты вершины многоугольника в трехмерном пространстве, я создал следующие эллипсы (синий и желтый):

Вращение 0: img и Вращение 45: img

Оба они вращаются вокруг оси z и того же угла, но поскольку синий эллипс вращается вокруг своей собственной оси, его точки перемещаются вдоль своей окружности. Я хочу иметь возможность вращать синий эллипс так, чтобы он вел себя идентично с желтым эллипсом. В чем отличие алгоритма вращения между желтым эллипсом и синим эллипсом?

Алгоритм вращения точки синего эллипса, который я использую, взят из этого ответа . Я просто подключил каждую точку, чтобы она вращалась через ось z на заданный угол, что заставляет точки пересекать окружность.

Я подозреваю, что вращение на желтом эллипсе является глобальным (вращающимся среди глобальной оси Z ), а синий вращается сам по себе. Предполагая, что они оба расположены в начале координат, обращены к оси Z, как лучше повернуть синий эллипс на оси Z?

...