使用鼠标在Flash旋转XYZ中可以在2个方向上轻松旋转3D

时间:2011-01-05 09:56:38

标签: flash actionscript-3 3d rotation

我有一个立方体,我想用鼠标移动旋转。因此,如果我将鼠标向左移动,它就会像rotateX一样旋转。当我向右移动时,旋转X增加。向上和向下移动会改变rotationY。

只要您只修改一个维度(rotationX或rotationY),这看起来就很好了。但是,如果我已经更改了rotationX然后尝试修改rotationY,结果很奇怪。如果rotationX为180,则旋转效果反转。它基本上是不可预测的,当然不适合用户。

我试图环顾四周(失败),阅读关于四元数(无法理解),尝试了一些蓝色和非常复杂的三角计算(我自己做了一个傻瓜),所以我现在被卡住了。我发现了这个问题Best way to translate mouse drag motion into 3d rotation of an object,但它对我没有帮助,我真的无法理解任何答案。

AS3中一个完整的,有效的解决方案/算法将是最好的,但是一些伪代码或只是明确的解释将非常感激。

1 个答案:

答案 0 :(得分:1)

您正在将rotationY应用于已旋转的对象。因此,如果将rotationX设置为180,然后设置rotationY,则实际上正在旋转“站在头上”的对象。如果要同时应用x和y旋转,最好使用matrix。您提供的链接很有用:一旦您理解了矩阵的概念,它就会解释所有内容。你应该仔细阅读,特别是如果你打算将来做更多的3D。

目前,只需查看Flash manual page for Matrix3D即可。它应该提供您开展所需的所有信息和示例。