Учитывая std::vector<Point>
, где Point
хранит координаты вершины многоугольника в трехмерном пространстве, я создал следующие эллипсы (синий и желтый):
Вращение 0: и Вращение 45:
Оба они вращаются вокруг оси z и того же угла, но поскольку синий эллипс вращается вокруг своей собственной оси, его точки перемещаются вдоль своей окружности. Я хочу иметь возможность вращать синий эллипс так, чтобы он вел себя идентично с желтым эллипсом. В чем отличие алгоритма вращения между желтым эллипсом и синим эллипсом?
Алгоритм вращения точки синего эллипса, который я использую, взят из этого ответа . Я просто подключил каждую точку, чтобы она вращалась через ось z на заданный угол, что заставляет точки пересекать окружность.
Я подозреваю, что вращение на желтом эллипсе является глобальным (вращающимся среди глобальной оси Z ), а синий вращается сам по себе. Предполагая, что они оба расположены в начале координат, обращены к оси Z, как лучше повернуть синий эллипс на оси Z?