rotvecd

Преобразуйте кватернион в вектор вращения (в градусах)

Описание

пример

rotationVector = rotvecd(quat) преобразует массив кватерниона, quat, в N -by-3 матрицу эквивалентных векторов поворота в степенях. Элементы quat нормированы перед преобразованием.

Примеры

свернуть все

Преобразуйте случайный кватернион скаляр в вектор вращения в степенях.

quat = quaternion(randn(1,4));
rotvecd(quat)
ans = 1×3

   96.6345 -119.0274   45.4312

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

свернуть все

Кватернион для преобразования, заданный как скалярный, векторный, матричный или многомерный массив кватернионов.

Типы данных: quaternion

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

свернуть все

Представление вектора поворота, возвращенное как матрица N -на 3 векторов поворота, где каждая строка представляет углы [x y z] векторов поворота в степенях. i строка rotationVector соответствует элементу quat(i).

Тип данных вектора поворота аналогичен базовому типу данных quat.

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

Алгоритмы

Все повороты в 3-D могут быть представлены четырьмя элементами: трехэлементной осью вращения и углом поворота. Если на ось вращения наложено ограничение модуля длину, угол поворота может быть распределен по элементам вектора, чтобы уменьшить представление до трех элементов.

Напомним, что кватернион может быть представлен в форме ось-угол

q=cos(θ2)+sin(θ2)(xi+yj+zk),

где θ - угол поворота в степени, а [x, y, z] - ось поворота.

Задан кватернион вида

q=a+bi+cj+dk,

можно решить для угла поворота, используя ось-угловую форму кватернионов:

θ=2cos1(a).

Принимая нормированную ось, можно переписать кватернион как вектор вращения без потери информации путем распределения θ по частям b, c и d. Векторное представление q с поворотом

qrv=θsin(θ2)[b,c,d].

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b