Spec-Zone.ru › Qt 5.13

Класс QQuaternion

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

Заголовок: #include <QQuaternion>
qmake: QT += gui
С момента: Qt 4.6

Этот класс был представлен в Qt 4.6.

  • Список всех членов, включая наследуемые
  • Устаревшие члены

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

QQuaternion(const QVector4D &vector)
QQuaternion(float scalar, const QVector3D &vector)
QQuaternion(float scalar, float xpos, float ypos, float zpos)
QQuaternion()
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 isIdentity() const
bool isNull() const
float длина() const
float квадрат длины() const
void нормализовать()
QQuaternion нормализованная() const
QVector3D повернутый вектор(const QVector3D &vector) const
float скалярная часть() 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 вектор() 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 скалярноеПроизведение(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)

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

Кватернионы используются для представления вращений в 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, скаляр).

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

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. Результат будет normalized().

Если 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 QQuaternion::qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QDataStream &QQuaternion::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.13/qquaternion.html

Spec-Zone.ru

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