计算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];