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-by-3 матрица векторов вращения, где каждая строка представляет [x y z] углы векторов вращения в градусах. i th строка rotationVector соответствует элементу quati.

Тип данных вектора вращения совпадает с базовым типом данных 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++ с помощью MATLAB® Coder™.

Смотрите также

Функции

Объекты

Введенный в R2020b