Spec-Zone.ru › Qt 5.15

Класс QVector3D

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

Заголовок: #include <QVector3D>
qmake: QT += gui
С тех пор: Qt 4.6

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

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

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

QVector3D(const QVector4D &vector)
QVector3D(const QVector2D &vector, float zpos)
QVector3D(const QVector2D &vector)
QVector3D(const QPointF &point)
QVector3D(const QPoint &point)
QVector3D(float xpos, float ypos, float zpos)
QVector3D()
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 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*=(const QVector3D &vector)
QVector3D & operator+=(const QVector3D &vector)
QVector3D & operator-=(const QVector3D &vector)
QVector3D & operator/=(float divisor)
QVector3D & operator/=(const QVector3D &vector)
float & operator[](int i)
float operator[](int i) 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)

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

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

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

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

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

QVector3D::QVector3D(const QVector4D &vector)

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

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

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

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

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

QVector3D::QVector3D(const QVector2D &vector)

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

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

QVector3D::QVector3D(const QPointF &point)

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

QVector3D::QVector3D(const QPoint &point)

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

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

Создаёт вектор с координатами (xpos, ypos, zpos).

QVector3D::QVector3D()

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

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() 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/qt-5.15/qvector3d.html

Spec-Zone.ru

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