围绕主轴旋转已旋转的3D对象

时间:2019-11-02 11:41:58

标签: wpf math 3d transform euler-angles

我正在WPF中使用3D模型。它使用偏航,俯仰和滚动进行旋转,所有操作均正常进行,但是在此变换之后,我想围绕主垂直轴(尚未旋转,但处于主状态)旋转整个对象。例如:

这是我的主要对象:
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;

0 个答案:

没有答案