Spec-Zone.ru › Qt 6.0

Класс QQuaternion

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

Заголовок: #include <QQuaternion>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
  • Список всех членов, включая унаследованные

Публичные функции

QQuaternion(const QVector4D &vector)
QQuaternion(float scalar, const QVector3D &vector)
QQuaternion(float scalar, float xpos, float ypos, float zpos)
QQuaternion()
QQuaternion conjugated() 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 inverted() const
bool isIdentity() const
bool isNull() const
float length() const
float lengthSquared() const
void normalize()
QQuaternion normalized() const
QVector3D rotatedVector(const QVector3D &vector) const
float scalar() const
void setScalar(float scalar)
void setVector(const QVector3D &vector)
void setVector(float x, float y, float z)
void setX(float x)
void setY(float y)
void setZ(float z)
QVector3D toEulerAngles() const
QMatrix3x3 toRotationMatrix() const
QVector4D toVector4D() const
QVector3D vector() const
float x() const
float y() const
float z() const
QVariant operator QVariant() const
QQuaternion & operator*=(float factor)
QQuaternion & operator*=(const QQuaternion &quaternion)
QQuaternion & operator+=(const QQuaternion &quaternion)
QQuaternion & operator-=(const QQuaternion &quaternion)
QQuaternion & operator/=(float divisor)

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

float dotProduct(const QQuaternion &q1, const QQuaternion &q2)
QQuaternion fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
QQuaternion fromAxisAndAngle(const QVector3D &axis, float angle)
QQuaternion fromAxisAndAngle(float x, float y, float z, float angle)
QQuaternion fromDirection(const QVector3D &direction, const QVector3D &up)
QQuaternion fromEulerAngles(float pitch, float yaw, float roll)
QQuaternion fromEulerAngles(const QVector3D &eulerAngles)
QQuaternion fromRotationMatrix(const QMatrix3x3 &rot3x3)
QQuaternion nlerp(const QQuaternion &q1, const QQuaternion &q2, float t)
QQuaternion rotationTo(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*(const QQuaternion &q1, const QQuaternion &q2)
const QQuaternion operator*(float factor, const QQuaternion &quaternion)
const QQuaternion operator*(const QQuaternion &quaternion, float factor)
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)

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

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

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

QQuaternion::QQuaternion(const QVector4D &vector)

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

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

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

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

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

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

QQuaternion::QQuaternion()

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

QQuaternion QQuaternion::conjugated() const

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

Эта функция была добавлена в 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.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().

[since 5.5] void QQuaternion::getEulerAngles(float *pitch, float *yaw, float *roll) const

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

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

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

[since 5.5] 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, since 5.5] 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().

[since 5.5] QVector3D QQuaternion::toEulerAngles() const

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

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

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

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

[since 5.5] 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*(const QQuaternion &q1, const QQuaternion &q2)

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

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

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

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

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

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

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

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

[since 5.5] 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/qt-6.0/qquaternion.html

Spec-Zone.ru

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