Я реализовал класс 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 = вектор, представляющий ось вращения.