我需要找到一个物体的旋转。所以我在2轴上旋转一个立方体,当用户点击时,我需要将立方体旋转到他们点击的面。我查看了ModelView矩阵并将点从弧度转换为度数,但范围从0到180(90次发生两次)
答案 0 :(得分:2)
如果您知道模型视图矩阵,那么您可以找到明确表示旋转的四元数。
这是一个包含公式的链接,用于根据旋转矩阵http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm
计算四元数修改强>
如果您的物体有2个模型视图矩阵,并且您想要从一个位置平滑移动到另一个位置,您仍然可以使用四元数!
让您有2个矩阵w1
w2
。对于每个构建使用现有公式的四元数q1
和q2
- 它很简单。像这样制作动画:
在每个动画步骤中构造对象旋转的当前四元数:
allTransform = q2 - q1
currentTransform = q1 + t*allTransform
其中t
来自[0, 1]
,allTransform是四元数
当您知道currentTransform
四元数从中构建模型视图矩阵时 - 只需使用现成的公式。
这将产生漂亮而流畅的动画。