Spec-Zone.ru › Qt 5.6

Класс QRay3D

(Qt3DCore::QRay3D)

Класс QRay3D определяет направленную линию в 3D пространстве, проходящую через точку начала.

Подробнее...

Заголовок: #include <QRay3D>
qmake: QT += 3dcore
С тех пор: Qt 5.5
  • Список всех членов, включая унаследованные

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

QRay3D()
QRay3D(const QVector3D &origin, const QVector3D &direction = QVector3D( 0.0f, 0.0f, 1.0f ), float distance = 1.0f)
~QRay3D()
bool contains(const QVector3D &point) const
bool contains(const QRay3D &ray) const
QVector3D direction() const
float distance() const
float distance(const QVector3D &point) const
QVector3D origin() const
QVector3D point(float t) const
QVector3D project(const QVector3D &vector) const
float projectedDistance(const QVector3D &point) const
void setDirection(const QVector3D &direction)
void setDistance(float distance)
void setOrigin(const QVector3D &value)
QRay3D & transform(const QMatrix4x4 &matrix)
QRay3D transformed(const QMatrix4x4 &matrix) const
bool operator!=(const QRay3D &other) const
bool operator==(const QRay3D &other) const

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

bool qFuzzyCompare(const Qt3DCore::QRay3D &ray1, const Qt3DCore::QRay3D &ray2)
QDataStream & operator>>(QDataStream &stream, Qt3DCore::QRay3D &ray)

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

Класс QRay3D определяет направленную линию в 3D пространстве, проходящую через точку начала.

Луч определяется точкой начала (origin()) и вектором направления (direction()). Лучи бесконечны по длине, распространяются от точки начала (origin()) в обоих направлениях. Если вектор направления (direction()) имеет нулевую длину, то поведение класса не определено.

Луч можно рассматривать как одномерную систему координат. Если координата равна t, то точка начала (origin()) находится при t = 0, точка origin() + direction() находится при t = 1, а точка origin() - direction() находится при t = -1. Метод point() можно использовать для получения положения точки в этой одномерной системе координат. Метод projectedDistance() можно использовать для преобразования точки в значение в этой одномерной системе координат.

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

QRay3D::QRay3D()

Создаёт луч по умолчанию с началом (origin()) (0, 0, 0), направлением (direction()) (0, 0, 1) и длиной 1.

QRay3D::QRay3D(const QVector3D &origin, const QVector3D &direction = QVector3D( 0.0f, 0.0f, 1.0f ), float distance = 1.0f)

Создаёт луч, заданный началом origin, направлением direction и длиной distance. Направление direction не обязательно нормировать.

Для создания луча, проходящего через две точки, используйте следующее:

QRay3D thruAB(pointA, pointB - pointA);

QRay3D::~QRay3D()

Удаляет экземпляр QRay3D.

bool QRay3D::contains(const QVector3D &point) const

Возвращает true, если point лежит на луче; иначе — false.

bool QRay3D::contains(const QRay3D &ray) const

Возвращает true, если ray лежит на этом луче; иначе — false. Если true, это означает, что два луча на самом деле совпадают, но с разными точками начала (origin()) или инвертированным направлением (direction()).

QVector3D QRay3D::direction() const

Возвращает вектор направления этого луча. Значение по умолчанию (0, 0, 1).

См. также setDirection() и origin().

float QRay3D::distance() const

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

float QRay3D::distance(const QVector3D &point) const

Возвращает минимальное расстояние от этого луча до point, или, что эквивалентно, длину линии, перпендикулярной этому лучу, проходящей через point. Если point находится на луче, то эта функция вернёт ноль.

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

QVector3D QRay3D::origin() const

Возвращает начало этого луча. Значение по умолчанию (0, 0, 0).

См. также setOrigin() и direction().

QVector3D QRay3D::point(float t) const

Возвращает точку на луче, определённую перемещением на t единиц вдоль луча в направлении вектора направления (direction()). Обратите внимание, что t может быть отрицательным, в этом случае возвращаемая точка будет лежать позади точки начала (origin()) относительно вектора направления (direction()).

Единицы для t определяются вектором направления (direction()). Возвращаемое значение точно равно origin() + t * direction().

См. также projectedDistance() и distance().

QVector3D QRay3D::project(const QVector3D &vector) const

Возвращает проекцию vector на этот луч. На следующей диаграмме пунктирная линия — луч, а V — vector. Возвращаемое значение будет вектором V':

[Отсутствует изображение qray3d-project.png]

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

float QRay3D::projectedDistance(const QVector3D &point) const

Возвращает количество единиц направления() луча от начала() до точки point. По сути, эта функция вычисляет значение t, где point = origin() + t * direction(). Если точка point не лежит на луче, то используется ближайшая точка, лежащая на луче.

Если возвращаемое значение положительно, то точка point лежит перед началом() относительно вектора направления(). Если возвращаемое значение отрицательно, то точка point лежит позади начала() относительно вектора направления().

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

void QRay3D::setDirection(const QVector3D &direction)

Устанавливает вектор направления этого луча на direction.

См. также direction() и setOrigin().

void QRay3D::setDistance(float distance)

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

void QRay3D::setOrigin(const QVector3D &value)

Устанавливает точку начала этого луча на value.

См. также origin() и setDirection().

QRay3D &QRay3D::transform(const QMatrix4x4 &matrix)

Преобразует этот луч с помощью matrix, заменив origin() и direction() преобразованными версиями.

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

QRay3D QRay3D::transformed(const QMatrix4x4 &matrix) const

Возвращает новый луч, образованный преобразованием origin() и direction() с помощью matrix.

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

bool QRay3D::operator!=(const QRay3D &other) const

Возвращает true если этот луч не совпадает с other; false в противном случае.

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

bool QRay3D::operator==(const QRay3D &other) const

Возвращает true если этот луч совпадает с other; false в противном случае.

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

Связанные нечленные функции

bool qFuzzyCompare(const Qt3DCore::QRay3D &ray1, const Qt3DCore::QRay3D &ray2)

Возвращает true если ray1 и ray2 почти равны; false в противном случае.

QDataStream &Qt3DCore::operator>>(QDataStream &stream, Qt3DCore::QRay3D &ray)

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

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

Spec-Zone.ru

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