Spec-Zone.ru › Qt 5.6

Класс 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 isIdentity() const
bool isNull() 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 преобразовать в QVector4D() const
QVector3D векторная часть() const
float x() const
float y() const
float z() const
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 из осей(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 оси вращения, заданной координатами 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. Результат будет 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().

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.6/qquaternion.html

Spec-Zone.ru

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