【发布时间】:2015-01-13 19:19:24
【问题描述】:
我正在尝试为四元数的旋转添加偏移量,根据Unity documentation,将两个四元数相乘与按顺序进行两个旋转相同。
这就是我现在正在尝试的:
如果偏移量四元数是 (0, 0, 0, 0) 乘以第一个四元数,则应该没有任何效果。然而,在我的测试中,将任何四元数乘以 (0, 0, 0, 0) 会得到 (0, 0, 0, 0),所以这不能正常工作。
Quaternion q = new Quaternion (-0.7f, 0f, 0f, -0.7f);
Quaternion rotationZero = new Quaternion (0f, 0f, 0f, 0f); // offset
Quaternion result = q * rotationZero;
print (result); // (0.0, 0.0, 0.0, 0.0)
【问题讨论】:
-
其实乘以(1,0,0,0)是没有效果的。请注意,所有用于表示旋转的四元数的大小都应为 1(平方和 = 1)。您的
q值也有一点偏差(幅度约为 0.99)。
标签: unity3d quaternions