이 페이지에서

QVector3D Class

QVector3D 클래스는 3차원 공간 내의 벡터 또는 정점을 나타냅니다. 더 보기...

헤더: #include <QVector3D>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

공개 함수

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
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)
(since 6.12) size_t qHash(QVector3D key, size_t seed = 0)
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)

2차원 point 의 x 및 y 좌표를 바탕으로 벡터를 생성하며, z 좌표는 0으로 설정합니다.

[explicit constexpr noexcept] QVector3D::QVector3D(QPointF point)

2차원 point 의 x, y 좌표를 기반으로 벡터를 생성하며, z 좌표는 0으로 설정합니다.

[explicit constexpr noexcept] QVector3D::QVector3D(QVector2D vector)

지정된 2차원 vector 로부터 3차원 벡터를 생성합니다. z 좌표는 0으로 설정됩니다.

toVector2D()도 참조하십시오 .

[explicit constexpr noexcept] QVector3D::QVector3D(QVector4D vector)

지정된 4차원 벡터 vector 를 사용하여 3차원 벡터를 생성합니다. w 좌표는 제외됩니다.

toVector4D()도 참조하십시오 .

[constexpr noexcept] QVector3D::QVector3D(QVector2D vector, float zpos)

지정된 2차원 벡터 vector 를 기반으로 3차원 벡터를 생성합니다. 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()

현재 벡터를 제자리에서 정규화합니다. 이 벡터가 0벡터이거나 벡터의 길이가 1에 매우 가까운 경우에는 아무 작업도 수행되지 않습니다.

length() 및 normalized()도 참조하십시오 .

[noexcept] QVector3D QVector3D::normalized() const

이 벡터의 정규화된 단위 벡터 형태를 반환합니다.

이 벡터가 null인 경우, null 벡터가 반환됩니다. 벡터의 길이가 1에 매우 가까운 경우, 벡터는 있는 그대로 반환됩니다. 그 외의 경우에는 길이가 1인 벡터의 정규화된 형태가 반환됩니다.

length() 및 normalize()도 참조하십시오 .

QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

모델 뷰 행렬 modelView, 투영 행렬 projection 및 뷰포트 치수 viewport 를 사용하여, 처음에는 객체/모델 좌표계에 있는 이 벡터의 창 좌표를 반환합니다.

클립 공간에서 정규화 공간으로 변환할 때, 벡터 성분들에 대해 w 성분으로 나눗셈이 수행됩니다. w가 0일 때 0으로 나누는 것을 방지하기 위해 w는 1로 설정됩니다.

참고: 반환되는 y좌표는 OpenGL 방향 체계에 따릅니다. OpenGL에서는 하단이 0인 반면, Qt에서는 상단이 0입니다.

unproject()도 참조하십시오 .

[constexpr noexcept] void QVector3D::setX(float x)

이 점의 x 좌표를 지정된 유한 x 좌표로 설정합니다.

x(), setY(), setZ()도 참조하십시오 .

[constexpr noexcept] void QVector3D::setY(float y)

이 점의 y 좌표를 지정된 유한 y 좌표로 설정합니다.

y(), setX(), setZ()도 참조하십시오 .

[constexpr noexcept] void QVector3D::setZ(float z)

이 점의 z 좌표를 지정된 유한한 z 좌표로 설정합니다.

z(), setX() 및 setY()도 참조하십시오 .

[constexpr noexcept] QPoint QVector3D::toPoint() const

이 3차원 벡터의 QPoint 형식을 반환합니다. z 좌표는 생략됩니다. x 및 y 좌표는 가장 가까운 정수로 반올림됩니다.

toPointF() 및 toVector2D()도 참조하십시오 .

[constexpr noexcept] QPointF QVector3D::toPointF() const

이 3차원 벡터를 QPointF 형식으로 반환합니다. z 좌표는 제외됩니다.

toPoint() 및 toVector2D()도 참조하십시오 .

[constexpr noexcept] QVector2D QVector3D::toVector2D() const

이 3차원 벡터의 z 좌표를 제거하여 2차원 벡터 형태로 반환합니다.

toVector4D() 및 toPoint()도 참조하십시오 .

[constexpr noexcept] QVector4D QVector3D::toVector4D() const

이 3차원 벡터를 4차원 형태로 반환하며, w 좌표는 0으로 설정됩니다.

toVector2D() 및 toPoint()도 참조하십시오 .

QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

모델 뷰 행렬 modelView, 투영 행렬 projection 및 뷰포트 치수 viewport 을 사용하여, 처음에 윈도우 좌표계에 있는 이 벡터의 객체/모델 좌표를 반환합니다.

클립 공간에서 정규화된 공간으로 변환할 때, 벡터 성분의 w 성분으로 나눈 값이 계산됩니다. w가 0일 때 0으로 나누는 상황을 방지하기 위해 w는 1로 설정됩니다.

참고: viewport 의y 좌표는 OpenGL 방향 체계를 따라야 합니다. OpenGL에서는 하단이 0인 반면, Qt에서는 상단이 0입니다.

project()도 참조하십시오 .

[constexpr noexcept] float QVector3D::x() const

이 점의 x 좌표를 반환합니다.

setX(), y() 및 z()도 참조하십시오 .

[constexpr noexcept] float QVector3D::y() const

이 점의 y 좌표를 반환합니다.

setY(), x() 및 z()도 참조하십시오 .

[constexpr noexcept] float QVector3D::z() const

이 점의 z 좌표를 반환합니다.

setZ(), x(), y()도 참조하십시오 .

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 i 는 벡터 내에서 유효한 인덱스 위치여야 합니다(즉, 0 <= < 3).

[constexpr] float QVector3D::operator[](int i) const

벡터의 인덱스 위치 i 에 있는 성분을 반환합니다.

i i 는 벡터 내에서 유효한 인덱스 위치여야 합니다(즉, 0 <= < 3).

관련 비멤버 함수

[noexcept] bool qFuzzyCompare(QVector3D v1, QVector3D v2)

v1 와 v2 가 같을 경우, 부동소수점 비교 시 약간의 오차 범위를 허용하여 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.

[constexpr noexcept, since 6.12] size_t qHash(QVector3D key, size_t seed = 0)

seed 를 계산의 시드 값으로 사용하여 key 의 해시 값을 반환합니다.

이 함수는 Qt 6.12에서 도입되었습니다.

[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)

v2 를 v1 에서 뺀 값으로 구성된 ` 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 `에서 3D 벡터를 지정된 ` vector `로 읽어들이고, 해당 스트림에 대한 참조를 반환합니다.

'Qt 데이터 유형 직렬화'항목도 참조하십시오 .

© 2026 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.