Spec-Zone.ru › Qt 6.0

Класс QVector3D

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

Заголовок: #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)

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

Векторы являются одними из основных строительных блоков трёхмерного представления и отрисовки. Они состоят из трёх координат, традиционно называемых 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

Возвращает форму 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().

[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/=().

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также 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)

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

Примечание: Это не то же самое, что crossProduct() для 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.

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

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

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

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

Spec-Zone.ru

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