Создайте два кватерниона со следующей интерпретацией:
a
= 45 вращений степени вокруг оси z
c
=-45 вращений степени вокруг оси z
Вызовите slerp
с кватернионами a
и c
и задайте коэффициент интерполяции 0,5.
Выход slerp
B
, представляет среднее вращение a
и c
. Чтобы проверить, преобразуйте b
к Углам Эйлера в градусах.
averageRotation = 1×3
0 0 0
Коэффициент интерполяции задан как нормированное значение между 0
и 1
, включительно. Коэффициент интерполяции 0
соответствует a
кватернион и коэффициент интерполяции 1
соответствует c
кватернион. Вызовите slerp
с коэффициентами 0
и 1
подтвердить.
ans = 2×3
45.0000 0 0
-45.0000 0 0
Можно создать сглаженные пути между кватернионами путем определения массивов равномерно распределенных коэффициентов интерполяции.
Для кватернионов, которые представляют вращение только вокруг одной оси, задавая коэффициенты интерполяции как равномерно распределенные результаты в кватернионах, равномерно распределенных в Углах Эйлера. Преобразуйте interpolatedQuaternions
к Углам Эйлера и проверяют, что различие между углами в пути является постоянным.
abc = 10×3
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
В качестве альтернативы можно использовать dist
функция, чтобы проверить, что расстояние между интерполированными кватернионами сопоставимо. dist
функция возвращает угловое расстояние в радианах; преобразуйте в степени для легкого сравнения.
def = 1×10
9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000