Вращать уже повернутый 3D-объект вокруг первичной оси - PullRequest
0 голосов
/ 02 ноября 2019

Я работаю с 3D-моделью в WPF. Он вращается с использованием рыскания, тангажа и крена, все работает правильно, но после этого преобразования я хочу повернуть весь объект вокруг первичной вертикальной оси (еще не повернут, но в начальном состоянии). Например:

Это мой основной объект:
enter image description here
После 3D вращения это выглядит так:
enter image description here
Итак, теперь я хочу повернуть весь объект вокруг розовой оси (например, синий кружок на первом изображении):
enter image description here

Я знаю, что есть решение, но я делаюне очень понимаю матрицы. Я также пытался визуализировать объект в 3D-точке и вычислять углы, но это не удалось.
Так что, если вы знаете решение, пожалуйста, поделитесь. Благодарю вас.

РЕДАКТИРОВАТЬ 1:
Это мой код для преобразования объекта (простое преобразование WPF):

Transform3DGroup transforms = new Transform3DGroup();
transforms.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1, 0, 0), Yaw)));
transforms.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 1, 0), Pitch)));
transforms.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), Roll)));
Model.Transform = transforms;
...