Поделиться через


Структура кватерниона

Четырехмерный вектор, используемый для представления поворота.

Кватернион может эффективно поворачивать объект вокруг вектора (x, y, z) на угловую тету, где w = cos(theta/2). Кватернионы обычно используются для плавной интерполяции между двумя углами и для предотвращения проблемы блокировки каримбалов, которая может возникнуть с углами Эйлера.

Этот тип доступен только в C++. Эквивалентом .NET является System.Numerics.Quaternion.

Конструкторы

Имя Описание
quaternion() Создает неинициализированный кватернион.
quaternion(float x, float y, float z, float w) Создает кватернион с указанными значениями.
quaternion(float3 vectorPart, float scalarPart) Создает кватернион на основе float3 и скалярного объекта.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Преобразует Microsoft.Graphics.Canvas.Numerics.Quaternion в кватернион.

Функции

Имя Описание
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) Создает кватернион на основе вектора и угла поворота вокруг вектора.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Создает кватернион на основе заданных углов наклона, шага и рулона.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) Создает кватернион из матрицы поворота.
bool is_identity(quaternion const& value) Проверяет, является ли этот кватернион удостоверением (без поворота).
float length(quaternion const& value) Вычисляет длину кватерниона.
float length_squared(quaternion const& value) Вычисляет длину в квадрате кватерниона.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Вычисляет скалярное произведение двух кватернионов.
quaternion normalize(quaternion const& value) Делит каждый компонент кватерниона на длину кватерниона.
quaternion conjugate(quaternion const& value) Вычисляет сопряжение кватерниона.
quaternion inverse(quaternion const& value) Вычисляет обратный кватернион.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Выполняет интерполяцию между двумя кватернионами, используя сферическую линейную интерполяцию.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Линейно интерполируется между двумя кватернионами.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Объединяет два кватерниона; результат представляет первый поворот, за которым следует второй поворот.

Методы

Имя Описание
static quaternion identity() Возвращает экземпляр кватерниона удостоверения.

Операторы

Имя Описание
quaternion operator+ (quaternion const& value1, quaternion const& value2) Добавляет два кватерниона.
quaternion operator- (quaternion const& value1, quaternion const& value2) Вычитает кватернион из другого кватерниона.
quaternion operator* (quaternion const& value1, quaternion const& value2) Умножает кватернион на другой кватернион.
quaternion operator* (quaternion const& value1, float value2) Умножает кватернион на скалярное значение.
quaternion operator/ (quaternion const& value1, quaternion const& value2) Делит кватернион на другой кватернион.
quaternion operator- (quaternion const& value) Переворачивает знак каждого компонента кватерниона.
quaternion& operator+= (quaternion& value1, quaternion const& value2) На месте добавляет два кватерниона.
quaternion& operator-= (quaternion& value1, quaternion const& value2) На месте вычитает кватернион из другого кватерниона.
quaternion& operator*= (quaternion& value1, quaternion const& value2) На месте умножает кватернион на другой кватернион.
quaternion& operator*= (quaternion& value1, float value2) На месте nultiplies a quaternion by a скалярное значение.
quaternion& operator/= (quaternion& value1, quaternion const& value2) На месте делит кватернион на другой кватернион.
bool operator== (quaternion const& value1, quaternion const& value2) Определяет, равны ли два экземпляра кватерниона.
bool operator!= (quaternion const& value1, quaternion const& value2) Определяет, равны ли два экземпляра кватерниона.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Преобразует кватернион в Microsoft.Graphics.Canvas.Numerics.Quaternion.

Поля

Имя Описание
float x Значение X компонента вектора кватерниона.
float y Значение Y компонента вектора кватерниона.
float z Z-значение компонента вектора кватерниона.
float w Компонент поворота кватерниона.

Требования

Требование Значение
Пространство имен Windows::Foundation::Numerics
Заголовок
Windowsnumerics.h

См. также раздел

API windowsnumerics.h