Spec-Zone.ru › Qt 5.12

Класс 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 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*(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.

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

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

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

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

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

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

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

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

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

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

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

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

[static] QQuaternion QQuaternion::fromAxisAndAngle(float x, float y, float z, float angle)

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

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

[static] QQuaternion QQuaternion::fromDirection(const QVector3D &direction, const QVector3D &up)

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

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

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

[static] QQuaternion QQuaternion::fromEulerAngles(float pitch, float yaw, float roll)

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

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

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

[static] QQuaternion QQuaternion::fromEulerAngles(const QVector3D &eulerAngles)

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

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

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

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

[static] 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, создавая новый вектор в трёхмерном пространстве.

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

Spec-Zone.ru

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