вращение трехмерной фигуры, когда она описывается множеством массивов и без использования кватернионов - PullRequest
0 голосов
/ 23 февраля 2020

Я реализовал класс Rectangle3D, где все 8 точечных координат описаны в наборе массивов:

   Rectangle3D rect_a({1.0f, 5.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f},//x coord
                   {3.0f, 6.0f, 3.0f, 7.0f, 2.0f, 9.0f, 5.0f, 2.0f},// y coord
                   {2.0f, 4.0f, 6.0f, 2.0f, 2.0f, 1.0f, 2.0f, 5.0f}); // z coord

Я использую библиотеку кватернионов, которая позволит мне вращать этот прямоугольник вокруг своей оси. Однако для целей тестирования мне нужно найти другой способ его поворота, скажем, на 45 градусов вокруг оси Z, и получить новую скоординированную повернутую фигуру. Это должно быть сделано именно в такой форме, это строгое требование. К сожалению, ни один вариант, который я пробовал, не дал мне хороших результатов. Любые идеи будут высоко оценены.

Дополнение: почему-то я считаю, что эту формулу следует использовать. Проблема в том, что математика этого типа также нова для меня, когда используются комплексные числа. Кватернион с точки зрения угла оси равен:

q = cos (a / 2) + i (x * sin (a / 2)) + j (y * sin (a / 2)) + k (z * sin (a / 2))

где:

a = угол поворота. x, y, z = вектор, представляющий ось вращения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...