Spec-Zone.ru › Qt 5.11

Класс QVector3D

Класс QVector3D представляет вектор или вершину в 3D пространстве. Подробнее...

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

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

QVector3D()
QVector3D(float xpos, float ypos, float zpos)
QVector3D(const QPoint &point)
QVector3D(const QPointF &point)
QVector3D(const QVector2D &vector)
QVector3D(const QVector2D &vector, float zpos)
QVector3D(const QVector4D &vector)
float distanceToLine(const QVector3D &point, const QVector3D &direction) const
float distanceToPlane(const QVector3D &plane, const QVector3D &normal) const
float distanceToPlane(const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const
float distanceToPoint(const QVector3D &point) const
bool isNull() const
float length() const
float lengthSquared() const
void normalize()
QVector3D normalized() const

Статические открытые члены

QVector3D crossProduct(const QVector3D &v1, const QVector3D &v2)
float dotProduct(const QVector3D &v1, const QVector3D &v2)
QVector3D normal(const QVector3D &v1, const QVector3D &v2)
QVector3D normal(const QVector3D &v1, const QVector3D &v2, const QVector3D &v3)

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

bool qFuzzyCompare(const QVector3D &v1, const QVector3D &v2)
bool operator!=(const QVector3D &v1, const QVector3D &v2)
const QVector3D operator*(float factor, const QVector3D &vector)
const QVector3D operator*(const QVector3D &vector, float factor)
const QVector3D operator*(const QVector3D &v1, const QVector3D &v2)
const QVector3D operator+(const QVector3D &v1, const QVector3D &v2)
const QVector3D operator-(const QVector3D &v1, const QVector3D &v2)
const QVector3D operator-(const QVector3D &vector)
const QVector3D operator/(const QVector3D &vector, float divisor)
const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor)
QDataStream & operator<<(QDataStream &stream, const QVector3D &vector)
bool operator==(const QVector3D &v1, const QVector3D &v2)
QDataStream & operator>>(QDataStream &stream, QVector3D &vector)

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

Класс QVector3D представляет вектор или вершину в 3D пространстве.

Векторы — один из основных строительных блоков 3D представления и отрисовки. Они состоят из трёх координат, традиционно называемых x, y и z.

Класс QVector3D также может использоваться для представления вершин в 3D пространстве. Поэтому нам не нужно предоставлять отдельный класс вершин.

См. также QVector2D, QVector4D и QQuaternion.

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

QVector3D::QVector3D()

Конструирует нулевой вектор, т.е. с координатами (0, 0, 0).

QVector3D::QVector3D(float xpos, float ypos, float zpos)

Конструирует вектор с координатами (xpos, ypos, zpos).

QVector3D::QVector3D(const QPoint &point)

Конструирует вектор с координатами x и y из 2D точки point, и координатой z равной 0.

QVector3D::QVector3D(const QPointF &point)

Конструирует вектор с координатами x и y из 2D точки point, и координатой z равной 0.

QVector3D::QVector3D(const QVector2D &vector)

Конструирует 3D вектор из указанного 2D вектора vector. Координата z устанавливается в ноль.

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

QVector3D::QVector3D(const QVector2D &vector, float zpos)

Конструирует 3D вектор из указанного 2D вектора vector. Координата z устанавливается в zpos.

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

QVector3D::QVector3D(const QVector4D &vector)

Конструирует 3D вектор из указанного 4D вектора vector. Координата w отбрасывается.

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

QVector3D QVector3D::crossProduct(const QVector3D &v1, const QVector3D &v2)

Возвращает векторное произведение векторов v1 и v2, что соответствует вектору нормали к плоскости, определённой v1 и v2.

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

float QVector3D::distanceToLine(const QVector3D &point, const QVector3D &direction) const

Возвращает расстояние от этой вершины до линии, определённой точкой point и единичным вектором direction.

Если direction — нулевой вектор, то он не определяет линию. В этом случае возвращается расстояние от point до этой вершины.

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

float QVector3D::distanceToPlane(const QVector3D &plane, const QVector3D &normal) const

Возвращает расстояние от этой вершины до плоскости, определённой вершиной plane и единичным вектором normal. Параметр normal предполагается нормализованным к единичному вектору.

Значение результата будет отрицательным, если вершина находится ниже плоскости, или нулевым, если она находится на плоскости.

См. также normal() и distanceToLine().

float QVector3D::distanceToPlane(const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const

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

Возвращает расстояние от этой вершины до плоскости, определённой вершинами plane1, plane2 и plane3.

Значение результата будет отрицательным, если вершина находится ниже плоскости, или нулевым, если она находится на плоскости.

Два вектора, определяющие плоскость, — plane2 - plane1 и plane3 - plane1.

См. также normal() и distanceToLine().

float QVector3D::distanceToPoint(const QVector3D &point) const

Возвращает расстояние от этой вершины до точки, определённой вершиной point.

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

См. также distanceToPlane() и distanceToLine().

float QVector3D::dotProduct(const QVector3D &v1, const QVector3D &v2)

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

bool QVector3D::isNull() const

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

float QVector3D::length() const

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

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

float QVector3D::lengthSquared() const

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

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

QVector3D QVector3D::normal(const QVector3D &v1, const QVector3D &v2)

Возвращает вектор нормали к плоскости, определённой векторами v1 и v2, нормализованный до единичного вектора.

Используйте crossProduct() для вычисления векторного произведения v1 и v2, если вам не нужно, чтобы результат был нормализован до единичного вектора.

См. также crossProduct() и distanceToPlane().

QVector3D QVector3D::normal(const QVector3D &v1, const QVector3D &v2, const QVector3D &v3)

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

Возвращает вектор нормали к плоскости, определённой векторами v2 - v1 и v3 - v1, нормализованный до единичного вектора.

Используйте crossProduct() для вычисления векторного произведения v2 - v1 и v3 - v1, если вам не нужно, чтобы результат был нормирован до единичного вектора.

См. также crossProduct() и distanceToPlane().

void QVector3D::normalize()

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

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

QVector3D QVector3D::normalized() const

Возвращает нормированный единичный вектор этого вектора.

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

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

QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

Возвращает координаты окна этого вектора, первоначально в координатах объекта/модели, используя матрицу вида модели modelView, проекционную матрицу projection и размеры области просмотра viewport.

При преобразовании из пространства отсечения в нормированное пространство происходит деление компонент вектора на компонент w. Чтобы предотвратить деление на 0, если w равно 0, оно устанавливается в 1.

Примечание: возвращаемые координаты y находятся в ориентации OpenGL. OpenGL ожидает, что низ находится в 0, в то время как для Qt верх находится в 0.

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

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

void QVector3D::setX(float x)

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

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

void QVector3D::setY(float y)

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

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

void QVector3D::setZ(float z)

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

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

QPoint QVector3D::toPoint() const

Возвращает QPoint форму этого 3D вектора. Координата z отбрасывается.

См. также toPointF() и toVector2D().

QPointF QVector3D::toPointF() const

Возвращает QPointF форму этого 3D вектора. Координата z отбрасывается.

См. также toPoint() и toVector2D().

QVector2D QVector3D::toVector2D() const

Возвращает 2D векторную форму этого 3D вектора, отбрасывая координату z.

См. также toVector4D() и toPoint().

QVector4D QVector3D::toVector4D() const

Возвращает 4D форму этого 3D вектора, при этом координата w устанавливается в ноль.

См. также toVector2D() и toPoint().

QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

Возвращает координаты объекта/модели этого вектора, первоначально в координатах окна, используя матрицу вида модели modelView, проекционную матрицу projection и размеры области просмотра viewport.

При преобразовании из пространства отсечения в нормированное пространство происходит деление компонент вектора на компонент w. Чтобы предотвратить деление на 0, если w равно 0, оно устанавливается в 1.

Примечание: координаты y в viewport должны использовать ориентацию OpenGL. OpenGL ожидает, что низ находится в 0, в то время как для Qt верх находится в 0.

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

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

float QVector3D::x() const

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

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

float QVector3D::y() const

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

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

float QVector3D::z() const

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

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

QVariant QVector3D::operator QVariant() const

Возвращает 3D вектор в виде QVariant.

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

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

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

QVector3D &QVector3D::operator*=(const QVector3D &vector)

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

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

Примечание: это не то же самое, что crossProduct() этого вектора и vector.

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

QVector3D &QVector3D::operator+=(const QVector3D &vector)

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

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

QVector3D &QVector3D::operator-=(const QVector3D &vector)

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

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

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

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

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

QVector3D &QVector3D::operator/=(const QVector3D &vector)

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

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

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

float &QVector3D::operator[](int i)

Возвращает компонент вектора в позиции индекса i как изменяемую ссылку.

i должен быть допустимой позицией индекса в векторе (т.е., 0 <= i < 3).

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

float QVector3D::operator[](int i) const

Возвращает компонент вектора в позиции индекса i.

i должен быть допустимой позицией индекса в векторе (т.е., 0 <= i < 3).

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

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

bool qFuzzyCompare(const QVector3D &v1, const QVector3D &v2)

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

bool operator!=(const QVector3D &v1, const QVector3D &v2)

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

const QVector3D operator*(float factor, const QVector3D &vector)

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

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

const QVector3D operator*(const QVector3D &vector, float factor)

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

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

const QVector3D operator*(const QVector3D &v1, const QVector3D &v2)

Умножает компоненты v1 на соответствующие компоненты в v2.

Примечание: это не то же самое, что crossProduct() of v1 и v2.

См. также QVector3D::crossProduct().

const QVector3D operator+(const QVector3D &v1, const QVector3D &v2)

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

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

const QVector3D operator-(const QVector3D &v1, const QVector3D &v2)

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

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

const QVector3D operator-(const QVector3D &vector)

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

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

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

const QVector3D operator/(const QVector3D &vector, float divisor)

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

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

const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor)

Возвращает объект QVector3D, образованный делением компонентов заданного vector на соответствующие компоненты заданного divisor.

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

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

QDataStream &operator<<(QDataStream &stream, const QVector3D &vector)

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

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

bool operator==(const QVector3D &v1, const QVector3D &v2)

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

QDataStream &operator>>(QDataStream &stream, QVector3D &vector)

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

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

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

Spec-Zone.ru

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