AS3 围绕空间点旋转 3D 对象

Posted

技术标签:

【中文标题】AS3 围绕空间点旋转 3D 对象【英文标题】:AS3 Rotate 3D object around point in space 【发布时间】:2018-04-10 05:38:29 【问题描述】:

我用

appendRotation(_Y, Vector3D.Y_AXIS);

围绕其中心旋转对象。工作正常。

当我希望对象围绕场景中心旋转时,我使用

prependRotation( _Y, Vector3D.Y_AXIS , new Vector3D( 0, 0, 0 ) );

工作正常。

但是如果我想像这样围绕空间中的某个点旋转对象:

prependRotation( _Y, Vector3D.Y_AXIS , new Vector3D( 10, 10, 10 ) );

它不起作用,物体完全变形了,谁能给我提示,我做错了什么?

【问题讨论】:

【参考方案1】:

可以通过将您的对象添加到父容器中来解决。然后 将对象移动到适当的位置:appendTranslation(10, 10, 10),然后对父容器应用旋转:appendRotation(_Y, Vector3D.Y_AXIS)。

【讨论】:

我就是这样做的,以避免出现问题,但为什么它没有按应有的方式工作? 我不能肯定地给出解释。当我们尝试对对象 matrix3d 应用位置和旋转变换时,我觉得会出现这个问题。

以上是关于AS3 围绕空间点旋转 3D 对象的主要内容,如果未能解决你的问题,请参考以下文章

向 3D 点旋转对象

Unity - 围绕 2D 中的点旋转对象

如何在统一的 3d 空间中平移?

3d 矩阵旋转 - 对象奇怪地旋转

如何围绕对象外部的点旋转节点(即不围绕对象的中心点旋转)

最初按中心旋转时围绕点旋转对象