QVector3D Class
QVector3D 클래스는 3D 공간에서 벡터 또는 버텍스를 나타냅니다. 더 보기...
Header: | #include <QVector3D> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 상속된 멤버를 포함한 모든 멤버 목록
- QVector3D는 3D 렌더링의 일부입니다.
공용 함수
QVector3D() | |
QVector3D(QPoint point) | |
QVector3D(QPointF point) | |
QVector3D(QVector2D vector) | |
QVector3D(QVector4D vector) | |
QVector3D(QVector2D vector, float zpos) | |
QVector3D(float xpos, float ypos, float zpos) | |
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/=(QVector3D vector) |
QVector3D & | operator/=(float divisor) |
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*(QVector3D v1, QVector3D v2) |
QVector3D | operator*(QVector3D vector, float factor) |
QVector3D | operator*(float factor, QVector3D vector) |
QVector3D | operator+(QVector3D v1, QVector3D v2) |
QVector3D | operator-(QVector3D v1, QVector3D v2) |
QVector3D | operator-(QVector3D vector) |
QVector3D | operator/(QVector3D vector, QVector3D divisor) |
QVector3D | operator/(QVector3D vector, float 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 를참조하십시오 .
멤버 함수 문서
[constexpr noexcept]
QVector3D::QVector3D()
좌표 (0, 0, 0)로 널 벡터를 생성합니다.
[explicit constexpr noexcept]
QVector3D::QVector3D(QPoint point)
2D point 에서 x 및 y 좌표와 0의 z 좌표로 벡터를 구축합니다.
[explicit constexpr noexcept]
QVector3D::QVector3D(QPointF point)
2D point 에서 x 및 y 좌표와 0의 z 좌표로 벡터를 구축합니다.
[explicit constexpr noexcept]
QVector3D::QVector3D(QVector2D vector)
지정된 2D에서 3D 벡터를 생성합니다 vector. z 좌표는 0으로 설정됩니다.
toVector2D()도 참조하세요 .
[explicit constexpr noexcept]
QVector3D::QVector3D(QVector4D vector)
지정된 4D에서 3D 벡터를 구축합니다 vector. w 좌표가 삭제됩니다.
toVector4D()도 참조하십시오 .
[constexpr noexcept]
QVector3D::QVector3D(QVector2D vector, float zpos)
지정된 2D vector 에서 3D 벡터를 생성합니다. z 좌표는 zpos 로 설정되며 유한해야 합니다.
toVector2D()도 참조하세요 .
[constexpr noexcept]
QVector3D::QVector3D(float xpos, float ypos, float zpos)
좌표가 있는 벡터를 생성합니다(xpos, ypos, zpos). 모든 매개변수는 유한해야 합니다.
[static constexpr noexcept]
QVector3D QVector3D::crossProduct(QVector3D v1, QVector3D v2)
벡터 v1 와 v2 의 교차 곱을 반환하며, 이는 v1 와 v2 에 걸쳐 있는 평면에 대해 정상입니다. 두 벡터가 평행하면 0이 됩니다.
normal()도 참조하세요 .
[noexcept]
float QVector3D::distanceToLine(QVector3D point, QVector3D direction) const
point 및 단위 벡터 direction 에 의해 정의된 선으로부터 이 정점까지의 거리를 반환합니다.
direction 이 널 벡터이면 선을 정의하지 않습니다. 이 경우 point 에서 이 정점까지의 거리가 반환됩니다.
distanceToPlane()도 참조하세요 .
[constexpr noexcept]
float QVector3D::distanceToPlane(QVector3D plane, QVector3D normal) const
이 정점으로부터 정점 plane 및 normal 단위 벡터로 정의된 평면까지의 거리를 반환합니다. normal 매개변수는 단위 벡터로 정규화된 것으로 가정합니다.
정점이 평면 아래에 있으면 반환값은 음수, 평면 위에 있으면 0이 됩니다.
normal() 및 distanceToLine()도 참조하세요 .
[noexcept]
float QVector3D::distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const
이 정점에서 정점 plane1, plane2 및 plane3 으로 정의된 평면까지의 거리를 반환합니다.
정점이 평면 아래에 있으면 반환값은 음수이고, 평면 위에 있으면 0이 됩니다.
평면을 정의하는 두 벡터는 plane2 - plane1 과 plane3 - plane1 입니다.
normal() 및 distanceToLine()도 참조하세요 .
[noexcept]
float QVector3D::distanceToPoint(QVector3D point) const
이 버텍스에서 버텍스 point 에 정의된 지점까지의 거리를 반환합니다.
distanceToPlane() 및 distanceToLine()도 참조하세요 .
[static constexpr noexcept]
float QVector3D::dotProduct(QVector3D v1, QVector3D v2)
v1 와 v2 의 도트 곱을 반환합니다.
[constexpr noexcept]
bool QVector3D::isNull() const
x, y, z 좌표가 0.0으로 설정된 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
[noexcept]
float QVector3D::length() const
원점에서 벡터의 길이를 반환합니다.
lengthSquared() 및 normalized()도 참조하세요 .
[constexpr noexcept]
float QVector3D::lengthSquared() const
원점에서 벡터의 제곱 길이를 반환합니다. 이는 벡터와 벡터 자체의 도트 곱에 해당합니다.
length() 및 dotProduct()도 참조하세요 .
[static noexcept]
QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)
서로 평행하지 않아야 하는 벡터 v1 와 v2 에 의해 스팬된 평면의 단위 법선 벡터를 반환합니다.
결과를 단위 벡터로 정규화할 필요가 없는 경우 crossProduct()를 사용하여 v1 및 v2 의 교차 곱을 계산합니다.
crossProduct() 및 distanceToPlane()도 참조하세요 .
[static noexcept]
QVector3D QVector3D::normal(QVector3D v1, QVector3D v2, QVector3D v3)
서로 평행하지 않아야 하는 벡터 v2 - v1 및 v3 - v1 에 걸쳐 있는 평면의 단위 법선 벡터를 반환합니다.
결과를 단위 벡터로 정규화할 필요가 없는 경우 crossProduct()를 사용하여 v2 - v1 및 v3 - v1 의 교차 곱을 계산합니다.
crossProduct() 및 distanceToPlane()도 참조하세요 .
[noexcept]
void QVector3D::normalize()
현재 벡터를 제자리에서 정규화합니다. 이 벡터가 널 벡터이거나 벡터의 길이가 1에 매우 가까우면 아무 일도 일어나지 않습니다.
length() 및 normalized()도 참조하세요 .
[noexcept]
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 성분으로 나누는 작업이 수행됩니다. w가 0인 경우 0으로 나누지 않도록 하기 위해 1로 설정됩니다.
참고: 반환된 y 좌표는 OpenGL 방향입니다. OpenGL은 하단이 0이 될 것으로 예상하는 반면, Qt OpenGL의 경우 상단이 0입니다.
unproject()도 참조하십시오 .
[constexpr noexcept]
void QVector3D::setX(float x)
이 점의 x 좌표를 주어진 유한 x 좌표로 설정합니다.
[constexpr noexcept]
void QVector3D::setY(float y)
이 점의 y 좌표를 주어진 유한 y 좌표로 설정합니다.
[constexpr noexcept]
void QVector3D::setZ(float z)
이 점의 z 좌표를 주어진 유한 z 좌표로 설정합니다.
[constexpr noexcept]
QPoint QVector3D::toPoint() const
이 3D 벡터의 QPoint 형식을 반환합니다. z 좌표는 삭제됩니다. x 및 y 좌표는 가장 가까운 정수로 반올림됩니다.
toPointF() 및 toVector2D()도 참조하세요 .
[constexpr noexcept]
QPointF QVector3D::toPointF() const
이 3D 벡터의 QPointF 형식을 반환합니다. z 좌표는 삭제됩니다.
toPoint() 및 toVector2D()도 참조하십시오 .
[constexpr noexcept]
QVector2D QVector3D::toVector2D() const
이 3D 벡터의 2D 벡터 형태를 반환하며 z 좌표를 삭제합니다.
toVector4D() 및 toPoint()도 참조하세요 .
[constexpr noexcept]
QVector4D QVector3D::toVector4D() const
이 3D 벡터의 4D 형태를 반환하며, w 좌표는 0으로 설정합니다.
toVector2D() 및 toPoint()도 참조하세요 .
QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
모델 뷰 행렬 modelView, 투영 행렬 projection 및 뷰포트 치수 viewport 를 사용하여 이 벡터의 객체/모델 좌표를 창 좌표로 초기화하여 반환합니다.
클립에서 정규화된 공간으로 변환할 때 벡터 구성 요소의 w 성분으로 나누는 작업이 수행됩니다. w가 0인 경우 0으로 나누는 것을 방지하기 위해 1로 설정됩니다.
참고: viewport 의 y 좌표는 OpenGL 방향을 사용해야 합니다. OpenGL은 하단이 0이 될 것으로 예상하는 반면 Qt OpenGL의 경우 상단이 0입니다.
project()도 참조하세요 .
[constexpr noexcept]
float QVector3D::x() const
이 지점의 x 좌표를 반환합니다.
[constexpr noexcept]
float QVector3D::y() const
이 지점의 y 좌표를 반환합니다.
[constexpr noexcept]
float QVector3D::z() const
이 지점의 z 좌표를 반환합니다.
QVariant QVector3D::operator QVariant() const
3D 벡터를 QVariant 로 반환합니다.
[constexpr noexcept]
QVector3D &QVector3D::operator*=(float factor)
이 벡터의 좌표에 주어진 유한 factor 을 곱하고 이 벡터에 대한 참조를 반환합니다.
operator/=() 및 operator*()도 참조하세요 .
[constexpr noexcept]
QVector3D &QVector3D::operator*=(QVector3D vector)
이 함수는 오버로드된 함수입니다.
이 벡터의 각 구성 요소에 vector 의 해당 구성 요소를 곱하고 이 벡터에 대한 참조를 반환합니다.
참고: 이 벡터의 crossProduct() 및 vector 과는 다릅니다(이 벡터의 구성 요소는 이 벡터와 vector 의 도트 곱에 더해집니다).
crossProduct(), operator/=() 및 operator*()도 참조하세요 .
[constexpr noexcept]
QVector3D &QVector3D::operator+=(QVector3D vector)
주어진 vector 을 이 벡터에 추가하고 이 벡터에 대한 참조를 반환합니다.
operator-=()도 참조하세요 .
[constexpr noexcept]
QVector3D &QVector3D::operator-=(QVector3D vector)
이 벡터에서 주어진 vector 을 빼고 이 벡터에 대한 참조를 반환합니다.
operator+=()도 참조하세요 .
[constexpr]
QVector3D &QVector3D::operator/=(QVector3D vector)
이 벡터의 각 성분을 vector 의 해당 성분으로 나누고 이 벡터에 대한 참조를 반환합니다.
vector 에는 0 또는 NaN인 성분이 없어야 합니다.
operator*=() 및 operator/()도 참조하세요 .
[constexpr]
QVector3D &QVector3D::operator/=(float divisor)
이 벡터의 좌표를 주어진 divisor 으로 나누고 이 벡터에 대한 참조를 반환합니다. divisor 은 0이나 NaN이 아니어야 합니다.
operator*=() 및 operator/()도 참조하세요 .
[constexpr]
float &QVector3D::operator[](int i)
수정 가능한 참조로 인덱스 위치 i 에서 벡터의 성분을 반환합니다.
i 는 벡터에서 유효한 인덱스 위치여야 합니다(즉, 0 <= i < 3).
[constexpr]
float QVector3D::operator[](int i) const
인덱스 위치에 있는 벡터의 성분을 반환합니다 i.
i 는 벡터에서 유효한 인덱스 위치여야 합니다(즉, 0 <= i < 3).
관련 비회원
[noexcept]
bool qFuzzyCompare(QVector3D v1, QVector3D v2)
v1 과 v2 이 같으면 true
을 반환하여 부동 소수점 비교에 작은 퍼지 계수를 허용하고, 그렇지 않으면 false를 반환합니다.
[constexpr noexcept]
bool operator!=(QVector3D v1, QVector3D v2)
v1 이 v2 과 같지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 이 연산자는 정확한 부동소수점 비교를 사용합니다.
[constexpr noexcept]
QVector3D operator*(QVector3D v1, QVector3D v2)
v1 의 각 컴포넌트에 v2 의 해당 컴포넌트를 곱하여 형성된 QVector3D 객체를 반환합니다.
참고: v1 및 v2 의 crossProduct()와는 다릅니다(해당 컴포넌트는 v1 및 v2 의 도트 곱을 더합니다).
QVector3D::crossProduct()도 참조하세요 .
[constexpr noexcept]
QVector3D operator*(QVector3D vector, float factor)
주어진 vector 의 복사본에 주어진 유한 factor 을 곱한 값을 반환합니다.
QVector3D::operator*=()도 참조하세요 .
[constexpr noexcept]
QVector3D operator*(float factor, QVector3D vector)
주어진 vector 의 복사본에 주어진 유한 factor 을 곱한 값을 반환합니다.
QVector3D::operator*=()도 참조하세요 .
[constexpr noexcept]
QVector3D operator+(QVector3D v1, QVector3D v2)
주어진 벡터 v1 과 v2 의 합인 QVector3D 객체를 반환하며, 각 구성 요소는 개별적으로 추가됩니다.
QVector3D::operator+=()도 참조하세요 .
[constexpr noexcept]
QVector3D operator-(QVector3D v1, QVector3D v2)
v1 에서 v2 을 빼서 형성된 QVector3D 객체를 반환합니다; 각 구성 요소는 개별적으로 빼집니다.
QVector3D::operator-=()도 참조하세요 .
[constexpr noexcept]
QVector3D operator-(QVector3D vector)
이 함수는 오버로드된 함수입니다.
주어진 vector 의 각 구성 요소의 부호를 변경하여 형성된 QVector3D 객체를 반환합니다.
QVector3D(0,0,0) - vector
와 동일합니다.
[constexpr]
QVector3D operator/(QVector3D vector, QVector3D divisor)
주어진 vector 의 각 컴포넌트를 주어진 divisor 의 해당 컴포넌트로 나누어 형성된 QVector3D 객체를 반환합니다.
divisor 에는 0 또는 NaN인 컴포넌트가 없어야 합니다.
QVector3D::operator/=()도 참조하세요 .
[constexpr]
QVector3D operator/(QVector3D vector, float divisor)
주어진 vector 의 각 컴포넌트를 주어진 divisor 로 나누어 형성된 QVector3D 객체를 반환합니다.
divisor 은 0이나 NaN 이 아니어야 합니다.
QVector3D::operator/=()도 참조하세요 .
QDataStream &operator<<(QDataStream &stream, QVector3D vector)
주어진 vector 을 주어진 stream 에 쓰고 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형 직렬화도참조하십시오 .
[constexpr noexcept]
bool operator==(QVector3D v1, QVector3D v2)
v1 이 v2 과 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 이 연산자는 정확한 부동소수점 비교를 사용합니다.
QDataStream &operator>>(QDataStream &stream, QVector3D &vector)
주어진 stream 에서 주어진 vector 으로 3D 벡터를 읽고 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형 직렬화도참조하십시오 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.