计算2个四元数之间的多个四元数
Calculating multiple quaternions between 2 quaternions
我在计算 2 个四元数之间的多个四元数时遇到问题。
图片示例:
Q1 在 7
有 localEulerAngles.y
Q4 的 localEulerAngles.y 为 -17.4
我可以通过以下方式获得 Q1 和 Q4 之间的中心四元数:
Quaternion.Slerp(Q1.transform.localRotation, Q4.transform.localRotation, 0.5f);
它给了我“-5.2”值——如果我只想要 Q1 和 Q4 之间的一个四元数,这很好。
但是如果我想要更多的四元数怎么办?
Q1 的 Slerp,“-5.2”和 Q4,“-5.2”不是它 - 如果您考虑一下,它们有点偏离中心。
提前致谢
t
使用不同的值:
int numberOfBetweenQuaternions = 2;
Quaternion[] inBetweenQuaternions = new Quaternion[numberOfBetweenQuaternions];
for (int i = 0 ; i < numberOfBetweenQuaternions ; i++)
{
inBetweenQuaternions[i] = Quaternion.Slerp(
Q1.transform.localRotation,
Q4.transform.localRotation,
(i+1f)/(numberOfBetweenQuaternions+1f));
}
Q2.transform.localRotation = inBetweenQuaternions[0];
Q3.transform.localRotation = inBetweenQuaternions[1];
我在计算 2 个四元数之间的多个四元数时遇到问题。
图片示例:
Q1 在 7
有 localEulerAngles.yQ4 的 localEulerAngles.y 为 -17.4
我可以通过以下方式获得 Q1 和 Q4 之间的中心四元数:
Quaternion.Slerp(Q1.transform.localRotation, Q4.transform.localRotation, 0.5f);
它给了我“-5.2”值——如果我只想要 Q1 和 Q4 之间的一个四元数,这很好。
但是如果我想要更多的四元数怎么办?
Q1 的 Slerp,“-5.2”和 Q4,“-5.2”不是它 - 如果您考虑一下,它们有点偏离中心。
提前致谢
t
使用不同的值:
int numberOfBetweenQuaternions = 2;
Quaternion[] inBetweenQuaternions = new Quaternion[numberOfBetweenQuaternions];
for (int i = 0 ; i < numberOfBetweenQuaternions ; i++)
{
inBetweenQuaternions[i] = Quaternion.Slerp(
Q1.transform.localRotation,
Q4.transform.localRotation,
(i+1f)/(numberOfBetweenQuaternions+1f));
}
Q2.transform.localRotation = inBetweenQuaternions[0];
Q3.transform.localRotation = inBetweenQuaternions[1];