Spec-Zone.ru › Qt 5.6

Класс 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 расстояниеДоЛинии(const QVector3D &point, const QVector3D &direction) const
float расстояниеДоПлоскости(const QVector3D &plane, const QVector3D &normal) const
float расстояниеДоПлоскости(const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const
float расстояниеДоТочки(const QVector3D &point) const
bool являетсяНулевой() const
float длина() const
float квадратДлины() const
void нормализовать()
QVector3D нормализованный() const
QVector3D проекция(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
void установитьX(float x)
void установитьY(float y)
void установитьZ(float z)
QPoint вТочку() const
QPointF вТочкуСПлавающейТочкой() const
QVector2D вВектор2D() const
QVector4D вВектор4D() const
QVector3D восстановитьИзПроекции(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
float x() const
float y() const
float z() const
operator QVariant() const
QVector3D & умножитьНа(float factor)
QVector3D & умножитьНа(const QVector3D &vector)
QVector3D & сложить(const QVector3D &vector)
QVector3D & вычесть(const QVector3D &vector)
QVector3D & разделитьНа(float divisor)
QVector3D & разделитьНа(const QVector3D &vector)
float & operator[](int i)
float operator[](int i) const

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

QVector3D векторноеПроизведение(const QVector3D &v1, const QVector3D &v2)
float скалярноеПроизведение(const QVector3D &v1, const QVector3D &v2)
QVector3D нормаль(const QVector3D &v1, const QVector3D &v2)
QVector3D нормаль(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 представляет вектор или вершину в трёхмерном пространстве.

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

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

См. также 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 из двумерной point и координатой z равной 0.

QVector3D::QVector3D(const QPointF &point)

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

QVector3D::QVector3D(const QVector2D &vector)

Создаёт трёхмерный вектор из заданного двумерного vector. Координата z устанавливается в ноль.

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

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

Создаёт трёхмерный вектор из заданного двумерного vector. Координата z устанавливается в zpos.

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

QVector3D::QVector3D(const QVector4D &vector)

Создаёт трёхмерный вектор из заданного четырёхмерного 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().

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/archives/qt-5.6/qvector3d.html

Spec-Zone.ru

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