我正在编写一个使用Rigidbody旋转Configurable Joint的脚本。我已经弄清楚了targetRotation,但现在我正在与targetAngularVelocity做斗争,如果设置正确,这将帮助我避免抖动。
targetAngularVelocity在文献记录中是这样定义的:“这是一个Vector3。它定义了所需的角速度,关节应该旋转成”。问题是,我不知道如何根据对象的两个Quaternions电流旋转和目标旋转来获得这个Quaternions。
我没有正确理解它吗?是否有基于两个Quaternions返回旋转矢量的函数?
发布于 2019-12-22 05:13:02
所以从数学上讲,四元数代表了刚体的方向。首先考虑前向问题,并查看在应用了t时间的旋转速度q_1之后,取向q_2如何转换为另一个取向q_2。
在数学上,旋转矢量有一个震级ω和一个方向k,以至于ω =ω* k
这是用四元数乘法完成的。
q_2 = q_ω * q_1
其中,q_ω表示围绕k轴旋转的角度θ=ω*t。
相反,您需要找到q_ω
var q_ω = q_2 * Quaternion.Inverse(q_1);并提取旋转轴和角度。
q_ω.ToAngleAxis(out float angle, out Vector3 axis);并组成转速矢量,它对应于这个转换,以time秒为单位。
var ω = (angle/time)*axis;https://stackoverflow.com/questions/59438501
复制相似问题