Spec-Zone.ru › Qt

Класс QVector3D

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

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

Общедоступные функции

QVector3D(QVector4D vector)
QVector3D(QVector2D vector, float zpos)
QVector3D(QVector2D vector)
QVector3D(QPointF point)
QVector3D(QPoint point)
QVector3D(float xpos, float ypos, float zpos)
QVector3D()
float distanceToLine(QVector3D point, QVector3D direction) const
float distanceToPlane(QVector3D plane, QVector3D normal) const
float distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const
float distanceToPoint(QVector3D point) const
bool isNull() const
float length() const
float lengthSquared() const
void normalize()
QVector3D normalized() const
QVector3D project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
void setX(float x)
void setY(float y)
void setZ(float z)
QPoint toPoint() const
QPointF toPointF() const
QVector2D toVector2D() const
QVector4D toVector4D() const
QVector3D unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
float x() const
float y() const
float z() const
QVariant operator QVariant() const
QVector3D & operator*=(float factor)
QVector3D & operator*=(QVector3D vector)
QVector3D & operator+=(QVector3D vector)
QVector3D & operator-=(QVector3D vector)
QVector3D & operator/=(float divisor)
QVector3D & operator/=(QVector3D vector)
float & operator[](int i)
float operator[](int i) const

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

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

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

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

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

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

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

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

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

QVector3D::QVector3D(QVector4D vector)

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

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

QVector3D::QVector3D(QVector2D vector, float zpos)

Создаёт 3D-вектор из указанного 2D-вектора vector. Координата z устанавливается в zpos, которая должна быть конечной.

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

QVector3D::QVector3D(QVector2D vector)

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

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

QVector3D::QVector3D(QPointF point)

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

QVector3D::QVector3D(QPoint point)

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

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

Создаёт вектор с координатами (xpos, ypos, zpos). Все параметры должны быть конечными.

QVector3D::QVector3D()

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

[static] QVector3D QVector3D::crossProduct(QVector3D v1, QVector3D v2)

Возвращает векторное произведение векторов v1 и v2, которое перпендикулярно плоскости, натянутой на v1 и v2. Будет равно нулю, если векторы параллельны.

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

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

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

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

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

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

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

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

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

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

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

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

Векторы, определяющие плоскость, — это plane2 - plane1 и plane3 - plane1.

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

[since 5.1] float QVector3D::distanceToPoint(QVector3D point) const

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

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

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

[static] float QVector3D::dotProduct(QVector3D v1, 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().

[static] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)

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

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

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

[static] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2, 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().

[since 5.5] 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

Возвращает представление этого 3D-вектора в виде QPoint. Координата z игнорируется. Координаты x и y округляются до ближайших целых чисел.

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

QPointF QVector3D::toPointF() const

Возвращает представление этого 3D-вектора в виде QPointF. Координата z игнорируется.

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

QVector2D QVector3D::toVector2D() const

Возвращает представление этого 3D-вектора в виде 2D-вектора, игнорируя координату z.

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

QVector4D QVector3D::toVector4D() const

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

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

[since 5.5] 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/=() и operator*().

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

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

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

Примечание: это не то же самое, что crossProduct() этого вектора и vector. (Его компоненты складываются с точечным произведением этого вектора и vector.)

См. также crossProduct(), operator/=() и operator*().

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

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

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

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

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

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

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

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

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

[since 5.5] QVector3D &QVector3D::operator/=(QVector3D vector)

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

Вектор vector не должен содержать компоненты, равные нулю или NaN.

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

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

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

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

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

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

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

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

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

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

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

bool qFuzzyCompare(QVector3D v1, QVector3D v2)

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

bool operator!=(QVector3D v1, QVector3D v2)

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

QVector3D operator*(float factor, QVector3D vector)

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

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

QVector3D operator*(QVector3D vector, float factor)

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

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

QVector3D operator*(QVector3D v1, QVector3D v2)

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

Примечание: Это не то же самое, что crossProduct() для v1 и v2. (Его компоненты суммируются в скалярное произведение v1 и v2.)

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

QVector3D operator+(QVector3D v1, QVector3D v2)

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

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

QVector3D operator-(QVector3D v1, QVector3D v2)

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

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

QVector3D operator-(QVector3D vector)

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

Возвращает объект QVector3D, полученный путём изменения знака каждого компонента заданного vector.

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

QVector3D operator/(QVector3D vector, float divisor)

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

divisor не должен быть равен нулю или NaN.

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

[since 5.5] QVector3D operator/(QVector3D vector, QVector3D divisor)

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

divisor не должен иметь компоненты, равные нулю или NaN.

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

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

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

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

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

bool operator==(QVector3D v1, 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/qt-6.2/qvector3d.html

Spec-Zone.ru

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