Вычисление нескольких кватернионов между 2 кватернионами - PullRequest
0 голосов
/ 30 октября 2019

У меня проблема с вычислением нескольких кватернионов между 2 кватернионами.

Пример на изображении: enter image description here

Q1 имеет localEulerAngles.y в 7

Q4 имеет localEulerAngles.y со значением -17,4

Я могу получить центральный кватернион между Q1 и Q4, например: Quaternion.Slerp(Q1.transform.localRotation, Q4.transform.localRotation, 0.5f);

И это дает мне значение "-5,2" -что здорово, если я хочу, чтобы между Q1 и Q4 был только один кватернион.

Но что, если я хочу больше кватернионов?

Slerp для Q1, "- 5.2" и Q4, "- 5.2"не правда ли - они немного смещены, если вы думаете об этом.

Заранее спасибо

1 Ответ

0 голосов
/ 30 октября 2019

Используйте разные значения для 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...