Spec-Zone.ru › Qt 5.11

Класс QQuaternion

Класс QQuaternion представляет кватернион, состоящий из вектора и скаляра. Подробнее...

Заголовок: #include <QQuaternion>
qmake: QT += gui
С момента: Qt 4.6
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые функции

QQuaternion()
QQuaternion(float scalar, float xpos, float ypos, float zpos)
QQuaternion(float scalar, const QVector3D &vector)
QQuaternion(const QVector4D &vector)
QQuaternion повернутая() const
void getAxes(QVector3D *xAxis, QVector3D *yAxis, QVector3D *zAxis) const
void getAxisAndAngle(float *x, float *y, float *z, float *angle) const
void getAxisAndAngle(QVector3D *axis, float *angle) const
void getEulerAngles(float *pitch, float *yaw, float *roll) const
QQuaternion обратная() const
bool является единичной() const
bool равна нулю() const
float длина() const
float квадрат длины() const
void нормализовать()
QQuaternion нормализованная() const
QVector3D повернутый вектор(const QVector3D &vector) const
float скалярная() const
void установить скаляр(float scalar)
void установить вектор(const QVector3D &vector)
void установить вектор(float x, float y, float z)
void установить X(float x)
void установить Y(float y)
void установить Z(float z)
QVector3D углы Эйлера() const
QMatrix3x3 матрица вращения() const
QVector4D вектор4D() const
QVector3D вектор() const
float x() const
float y() const
float z() const
QVariant operator QVariant() const
QQuaternion & умножить=(float factor)
QQuaternion & умножить=(const QQuaternion &quaternion)
QQuaternion & сложить=(const QQuaternion &quaternion)
QQuaternion & вычесть=(const QQuaternion &quaternion)
QQuaternion & разделить=(float divisor)

Статические публичные члены

float скалярное произведение(const QQuaternion &q1, const QQuaternion &q2)
QQuaternion из осей(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
QQuaternion из оси и угла(const QVector3D &axis, float angle)
QQuaternion из оси и угла(float x, float y, float z, float angle)
QQuaternion из направления(const QVector3D &direction, const QVector3D &up)
QQuaternion из углов Эйлера(float pitch, float yaw, float roll)
QQuaternion из углов Эйлера(const QVector3D &eulerAngles)
QQuaternion из матрицы вращения(const QMatrix3x3 &rot3x3)
QQuaternion nlerp(const QQuaternion &q1, const QQuaternion &q2, float t)
QQuaternion вращение к(const QVector3D &from, const QVector3D &to)
QQuaternion slerp(const QQuaternion &q1, const QQuaternion &q2, float t)

Связанные нечлены

bool qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2)
bool operator!=(const QQuaternion &q1, const QQuaternion &q2)
const QQuaternion operator*(float factor, const QQuaternion &quaternion)
const QQuaternion operator*(const QQuaternion &quaternion, float factor)
const QQuaternion operator*(const QQuaternion &q1, const QQuaternion &q2)
QVector3D operator*(const QQuaternion &quaternion, const QVector3D &vec)
const QQuaternion operator+(const QQuaternion &q1, const QQuaternion &q2)
const QQuaternion operator-(const QQuaternion &q1, const QQuaternion &q2)
const QQuaternion operator-(const QQuaternion &quaternion)
const QQuaternion operator/(const QQuaternion &quaternion, float divisor)
QDataStream & operator<<(QDataStream &stream, const QQuaternion &quaternion)
bool operator==(const QQuaternion &q1, const QQuaternion &q2)
QDataStream & operator>>(QDataStream &stream, QQuaternion &quaternion)

Подробное описание

Класс QQuaternion представляет кватернион, состоящий из вектора и скаляра.

Кватернионы используются для представления вращений в 3D-пространстве и состоят из 3D оси вращения, заданной координатами x, y и z, и скаляра, представляющего угол вращения.

Документация по членам-функциям

QQuaternion::QQuaternion()

Создаёт единичный кватернион (1, 0, 0, 0), т.е. с вектором (0, 0, 0) и скаляром 1.

QQuaternion::QQuaternion(float scalar, float xpos, float ypos, float zpos)

Создаёт кватернион с вектором (xpos, ypos, zpos) и scalar.

QQuaternion::QQuaternion(float scalar, const QVector3D &vector)

Создаёт кватернион из указанного вектора vector и скаляра scalar.

См. также vector() и scalar().

QQuaternion::QQuaternion(const QVector4D &vector)

Создаёт кватернион из компонентов vector.

QQuaternion QQuaternion::conjugated() const

Возвращает сопряжённый кватернион, который равен (-x, -y, -z, скаляр).

Эта функция была добавлена в Qt 5.5.

float QQuaternion::dotProduct(const QQuaternion &q1, const QQuaternion &q2)

Возвращает скалярное произведение q1 и q2.

Эта функция была добавлена в Qt 5.5.

См. также length().

QQuaternion QQuaternion::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Создаёт кватернион, используя 3 оси (xAxis, yAxis, zAxis).

Примечание: Оси предполагаются ортогональными.

Эта функция была добавлена в Qt 5.5.

См. также getAxes() и fromRotationMatrix().

QQuaternion QQuaternion::fromAxisAndAngle(const QVector3D &axis, float angle)

Создаёт нормализованный кватернион, соответствующий повороту на angle градусов вокруг указанной 3D оси axis.

См. также getAxisAndAngle().

QQuaternion QQuaternion::fromAxisAndAngle(float x, float y, float z, float angle)

Создаёт нормализованный кватернион, соответствующий повороту на angle градусов вокруг 3D оси (x, y, z).

См. также getAxisAndAngle().

QQuaternion QQuaternion::fromDirection(const QVector3D &direction, const QVector3D &up)

Создаёт кватернион, используя указанное направление вперёд direction и направление вверх up. Если направление вверх не было указано или векторы направления вперёд и вверх коллинеарны, будет сгенерировано новое ортогональное направление вверх.

Эта функция была добавлена в Qt 5.5.

См. также fromAxes() и rotationTo().

QQuaternion QQuaternion::fromEulerAngles(float pitch, float yaw, float roll)

Создаёт кватернион, соответствующий повороту на roll градусов вокруг оси z, pitch градусов вокруг оси x и yaw градусов вокруг оси y (в указанном порядке).

Эта функция была добавлена в Qt 5.5.

См. также getEulerAngles().

QQuaternion QQuaternion::fromEulerAngles(const QVector3D &eulerAngles)

Это перегруженная функция.

Создаёт кватернион, соответствующий повороту на eulerAngles: eulerAngles.z() градусов вокруг оси z, eulerAngles.x() градусов вокруг оси x и eulerAngles.y() градусов вокруг оси y (в указанном порядке).

Эта функция была добавлена в Qt 5.5.

См. также toEulerAngles().

QQuaternion QQuaternion::fromRotationMatrix(const QMatrix3x3 &rot3x3)

Создаёт кватернион, соответствующий матрице вращения rot3x3.

Примечание: Если заданная матрица вращения не нормирована, полученный кватернион будет содержать информацию о масштабировании.

Эта функция была добавлена в Qt 5.5.

См. также toRotationMatrix() и fromAxes().

void QQuaternion::getAxes(QVector3D *xAxis, QVector3D *yAxis, QVector3D *zAxis) const

Возвращает 3 ортогональные оси (xAxis, yAxis, zAxis), определяющие кватернион.

Эта функция была добавлена в Qt 5.5.

См. также fromAxes() и toRotationMatrix().

void QQuaternion::getAxisAndAngle(float *x, float *y, float *z, float *angle) const

Извлекает 3D ось (x, y, z) и угол поворота angle (в градусах), соответствующие этому кватерниону.

Эта функция была добавлена в Qt 5.5.

См. также fromAxisAndAngle().

void QQuaternion::getAxisAndAngle(QVector3D *axis, float *angle) const

Это перегруженная функция.

Извлекает 3D ось axis и угол поворота angle (в градусах), соответствующие этому кватерниону.

Эта функция была добавлена в Qt 5.5.

См. также fromAxisAndAngle().

void QQuaternion::getEulerAngles(float *pitch, float *yaw, float *roll) const

Вычисляет углы Эйлера roll, pitch и yaw (в градусах), соответствующие этому кватерниону.

Эта функция была добавлена в Qt 5.5.

См. также fromEulerAngles().

QQuaternion QQuaternion::inverted() const

Возвращает обратный кватернион. Если этот кватернион равен нулю, возвращается нулевой кватернион.

Эта функция была добавлена в Qt 5.5.

См. также isNull() и length().

bool QQuaternion::isIdentity() const

Возвращает true если компоненты x, y и z этого кватерниона равны 0.0, а скалярная компонента равна 1.0; в противном случае возвращает false.

bool QQuaternion::isNull() const

Возвращает true если компоненты x, y, z и скаляр этого кватерниона равны 0.0; в противном случае возвращает false.

float QQuaternion::length() const

Возвращает длину кватерниона. Это также называется "нормой".

См. также lengthSquared(), normalized() и dotProduct().

float QQuaternion::lengthSquared() const

Возвращает квадрат длины кватерниона.

См. также length() и dotProduct().

[static] QQuaternion QQuaternion::nlerp(const QQuaternion &q1, const QQuaternion &q2, float t)

Интерполирует по кратчайшему линейному пути между позициями вращения q1 и q2. Значение t должно быть в диапазоне от 0 до 1, определяя расстояние, которое необходимо пройти между q1 и q2. Результат будет нормализованным.

Если t меньше или равно 0, то возвращается q1. Если t больше или равно 1, то возвращается q2.

Функция nlerp() обычно быстрее, чем slerp(), и даёт приближенные результаты сферической интерполяции, достаточные для некоторых приложений.

См. также slerp().

void QQuaternion::normalize()

Нормализует текущий кватернион на месте. Ничего не происходит, если это нулевой кватернион или длина кватерниона очень близка к 1.

См. также length() и normalized().

QQuaternion QQuaternion::normalized() const

Возвращает нормализованную единичную форму этого кватерниона.

Если этот кватернион равен нулю, возвращается нулевой кватернион. Если длина кватерниона очень близка к 1, кватернион возвращается как есть. В противном случае возвращается нормализованная форма кватерниона длиной 1.

См. также normalize(), length() и dotProduct().

QVector3D QQuaternion::rotatedVector(const QVector3D &vector) const

Поворачивает vector с помощью этого кватерниона, чтобы получить новый вектор в 3D пространстве. Следующий код:

QVector3D result = q.rotatedVector(vector);

эквивалентен следующему:

QVector3D result = (q * QQuaternion(0, vector) * q.conjugated()).vector();

[static] QQuaternion QQuaternion::rotationTo(const QVector3D &from, const QVector3D &to)

Возвращает кратчайший кватернион дуги для поворота от направления, описанного вектором from, к направлению, описанному вектором to.

Эта функция была добавлена в Qt 5.5.

См. также fromDirection().

float QQuaternion::scalar() const

Возвращает скалярную компоненту этого кватерниона.

См. также setScalar(), x(), y() и z().

void QQuaternion::setScalar(float scalar)

Устанавливает скалярную компоненту этого кватерниона в scalar.

См. также scalar(), setX(), setY() и setZ().

void QQuaternion::setVector(const QVector3D &vector)

Устанавливает векторную компоненту этого кватерниона в vector.

См. также vector() и setScalar().

void QQuaternion::setVector(float x, float y, float z)

Устанавливает векторную компоненту этого кватерниона в (x, y, z).

См. также vector() и setScalar().

void QQuaternion::setX(float x)

Устанавливает координату x векторной части этого кватерниона на заданную координату x.

См. также x(), setY(), setZ() и setScalar().

void QQuaternion::setY(float y)

Устанавливает координату y векторной части этого кватерниона на заданную координату y.

См. также y(), setX(), setZ() и setScalar().

void QQuaternion::setZ(float z)

Устанавливает координату z векторной части этого кватерниона на заданную координату z.

См. также z(), setX(), setY() и setScalar().

[static] QQuaternion QQuaternion::slerp(const QQuaternion &q1, const QQuaternion &q2, float t)

Интерполирует по кратчайшему сферическому пути между позициями вращения q1 и q2. Значение t должно быть в диапазоне от 0 до 1, определяя сферическое расстояние, которое необходимо пройти между q1 и q2.

Если t меньше или равно 0, то возвращается q1. Если t больше или равно 1, то возвращается q2.

См. также nlerp().

QVector3D QQuaternion::toEulerAngles() const

Это перегруженная функция.

Вычисляет углы Эйлера roll, pitch и yaw (в градусах), соответствующие этому кватерниону.

Эта функция была добавлена в Qt 5.5.

См. также fromEulerAngles().

QMatrix3x3 QQuaternion::toRotationMatrix() const

Создаёт матрицу вращения, соответствующую этому кватерниону.

Примечание: Если этот кватернион не нормализован, полученная матрица вращения будет содержать информацию о масштабировании.

Эта функция была добавлена в Qt 5.5.

См. также fromRotationMatrix() и getAxes().

QVector4D QQuaternion::toVector4D() const

Возвращает этот кватернион как 4D вектор.

QVector3D QQuaternion::vector() const

Возвращает векторную компоненту этого кватерниона.

См. также setVector() и scalar().

float QQuaternion::x() const

Возвращает координату x векторной части этого кватерниона.

См. также setX(), y(), z() и scalar().

float QQuaternion::y() const

Возвращает координату y векторной части этого кватерниона.

См. также setY(), x(), z() и scalar().

float QQuaternion::z() const

Возвращает координату z векторной части этого кватерниона.

См. также setZ(), x(), y() и scalar().

QVariant QQuaternion::operator QVariant() const

Возвращает кватернион как QVariant.

QQuaternion &QQuaternion::operator*=(float factor)

Умножает компоненты этого кватерниона на заданный factor и возвращает ссылку на этот кватернион.

См. также operator/=().

QQuaternion &QQuaternion::operator*=(const QQuaternion &quaternion)

Умножает этот кватернион на quaternion и возвращает ссылку на этот кватернион.

QQuaternion &QQuaternion::operator+=(const QQuaternion &quaternion)

Добавляет заданный quaternion к этому кватерниону и возвращает ссылку на этот кватернион.

См. также operator-=().

QQuaternion &QQuaternion::operator-=(const QQuaternion &quaternion)

Вычитает заданный quaternion из этого кватерниона и возвращает ссылку на этот кватернион.

См. также operator+=().

QQuaternion &QQuaternion::operator/=(float divisor)

Делит компоненты этого кватерниона на заданный divisor и возвращает ссылку на этот кватернион.

См. также operator*=().

Связанные нечленные функции

bool qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2)

Возвращает true если q1 и q2 равны, с учетом небольшой погрешности при сравнении чисел с плавающей точкой; в противном случае возвращает false.

bool operator!=(const QQuaternion &q1, const QQuaternion &q2)

Возвращает true если q1 не равно q2; в противном случае возвращает false. Этот оператор использует точное сравнение чисел с плавающей точкой.

const QQuaternion operator*(float factor, const QQuaternion &quaternion)

Возвращает копию заданного quaternion, умноженного на заданный factor.

См. также QQuaternion::operator*=().

const QQuaternion operator*(const QQuaternion &quaternion, float factor)

Возвращает копию заданного quaternion, умноженного на заданный factor.

См. также QQuaternion::operator*=().

const QQuaternion operator*(const QQuaternion &q1, const QQuaternion &q2)

Умножает q1 и q2 с помощью умножения кватернионов. Результат соответствует применению обоих вращений, заданных q1 и q2.

См. также QQuaternion::operator*=().

QVector3D operator*(const QQuaternion &quaternion, const QVector3D &vec)

Поворачивает вектор vec с помощью кватерниона quaternion, создавая новый вектор в 3D пространстве.

Эта функция была введена в Qt 5.5.

const QQuaternion operator+(const QQuaternion &q1, const QQuaternion &q2)

Возвращает объект QQuaternion, который является суммой заданных кватернионов q1 и q2; каждый компонент суммируется отдельно.

См. также QQuaternion::operator+=().

const QQuaternion operator-(const QQuaternion &q1, const QQuaternion &q2)

Возвращает объект QQuaternion, полученный вычитанием q2 из q1; каждый компонент вычитается отдельно.

См. также QQuaternion::operator-=().

const QQuaternion operator-(const QQuaternion &quaternion)

Это перегруженная функция.

Возвращает объект QQuaternion, полученный изменением знака всех трёх компонентов заданного quaternion.

Эквивалентно QQuaternion(0,0,0,0) - quaternion.

const QQuaternion operator/(const QQuaternion &quaternion, float divisor)

Возвращает объект QQuaternion, полученный делением всех компонентов заданного quaternion на заданный divisor.

См. также QQuaternion::operator/=().

QDataStream &operator<<(QDataStream &stream, const QQuaternion &quaternion)

Записывает заданный quaternion в заданный stream и возвращает ссылку на поток.

См. также Сериализация типов данных Qt.

bool operator==(const QQuaternion &q1, const QQuaternion &q2)

Возвращает true если q1 равно q2; в противном случае возвращает false. Этот оператор использует точное сравнение чисел с плавающей точкой.

QDataStream &operator>>(QDataStream &stream, QQuaternion &quaternion)

Считывает кватернион из заданного stream в заданный quaternion и возвращает ссылку на поток.

См. также Сериализация типов данных Qt.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qquaternion.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API