C# 计算两个四元数之间的多个四元数
我在计算两个四元数之间的多个四元数时遇到问题 图像上的示例: Q1在7处有localEulerAngles.y Q4的localEulerAngles.y为-17.4 我可以获得Q1和Q4之间的中心四元数,例如:C# 计算两个四元数之间的多个四元数,c#,unity3d,rotation,quaternions,C#,Unity3d,Rotation,Quaternions,我在计算两个四元数之间的多个四元数时遇到问题 图像上的示例: 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之间,这是很好的 但是如果我想要更多的四元数呢 第一季度的Slerp,
Quaternion.Slerp(Q1.transform.localRotation,Q4.transform.localRotation,0.5f)代码>
它给了我“-5.2”的值-如果我只想要一个四元数在Q1和Q4之间,这是很好的
但是如果我想要更多的四元数呢
第一季度的Slerp,“-5.2”和第四季度的Slerp,“-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];
intnumberofbetweenkernions=2;
四元数[]中间四元数=新四元数[中间四元数的数目];
for(int i=0;i
ouuu。。。没有想到只是改变t参数。。。简单。结果还是没有完全解决我的问题,但有了一些进展:)谢谢!