quatrotate

Вращайте вектор кватернионом

Синтаксис

n = quatrotate(q,r)

Описание

пример

n = quatrotate(q,r) вычисляет вращаемый вектор, q, для кватерниона, q, и вектора, r. Если кватернионы еще не нормированы, функция нормирует их.

Примеры

свернуть все

Этот пример показывает, как вращаться 1 3 вектор кватернионом 1 на 4.

q = [1 0 1 0];
r = [1 1 1];
n = quatrotate(q, r)
n = 1×3

   -1.0000    1.0000    1.0000

Этот пример показывает, как вращаться 2 3 вектор кватернионом 1 на 4.

q = [1 0 1 0];
r = [1 1 1; 2 3 4];
n = quatrotate(q, r)
n = 2×3

   -1.0000    1.0000    1.0000
   -4.0000    3.0000    2.0000

Этот пример показывает, как вращаться 1 3 вектор 2 4 кватернион.

q = [1 0 1 0; 1 0.5 0.3 0.1];
r = [1 1 1];
n = quatrotate(q, r)
n = 2×3

   -1.0000    1.0000    1.0000
    0.8519    1.4741    0.3185

Этот пример показывает, как вращаться 2 3 вектор 2 4 кватернион.

q = [1 0 1 0; 1 0.5 0.3 0.1];
r = [1 1 1; 2 3 4];
n = quatrotate(q, r)
n = 2×3

   -1.0000    1.0000    1.0000
    1.3333    5.1333    0.9333

Входные параметры

свернуть все

Кватернион, заданный как m-by-4 матрица, содержащая кватернионы m или один кватернион 1 на 4. Каждый элемент должен быть действительным.

q должен иметь свой скалярный номер как первый столбец.

Типы данных: double | single

Векторный r, который будет вращаться, заданный как m-by-3 матрица, содержа векторы m или сингл 1 3 массив. Каждый элемент должен быть действительным.

r

Типы данных: double | single

Выходные аргументы

свернуть все

Вращаемый вектор, возвращенный как m-by-3 матрица.

Больше о

свернуть все

q

Кватернион q имеет форму:

q=q0+iq1+jq2+kq3

r

Векторный r имеет форму:

v=iv1+jv2+kv3

n

Вращаемый векторный n имеет форму:

v=[v1v2v3]=[(12q222q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(12q122q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(12q122q22)][v1v2v3]

Матрица направляющего косинуса для этого уравнения ожидает нормированный кватернион.

Ссылки

[1] Стивенс, Брайан Л., Франк Л. Льюис. Управление самолетом и симуляция, 2-й выпуск. Хобокен, NJ: John Wiley & Sons, 2003.

Представленный в R2006b