QVector3D 類

QVector3D 類錶示 3D 空間中的嚮量或頂點。 更多...

頭: #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
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 )

詳細描述

Vectors are one of the main building blocks of 3D representation and drawing. They consist of three finite floating-point coordinates, traditionally called x, y, and z.

The QVector3D class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.

另請參閱 QVector2D , QVector4D ,和 QQuaternion .

成員函數文檔編製

[constexpr noexcept] QVector3D:: QVector3D ()

構造 null 嚮量,即:采用坐標 (0, 0, 0)。

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

Constructs a vector with x and y coordinates from a 2D point , and a z coordinate of 0.

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

Constructs a vector with x and y coordinates from a 2D point , and a z coordinate of 0.

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

構造 3D 嚮量從指定 2D vector 。z 坐標被設為 0。

另請參閱 toVector2D ().

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

構造 3D 嚮量從指定 4D vector . The w coordinate is dropped.

另請參閱 toVector4D ().

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

構造 3D 嚮量從指定 2D vector 。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 )

Returns the cross-product of vectors v1 and v2 , which is normal to the plane spanned by v1 and v2 . It will be zero if the two vectors are parallel.

另請參閱 normal ().

[noexcept] float QVector3D:: distanceToLine ( QVector3D point , QVector3D direction ) const

Returns the distance that this vertex is from a line defined by point and the unit vector direction .

direction is a null vector, then it does not define a line. In that case, the distance from point to this vertex is returned.

另請參閱 distanceToPlane ().

[constexpr noexcept] float QVector3D:: distanceToPlane ( QVector3D plane , QVector3D normal ) const

Returns the distance from this vertex to a plane defined by the vertex planenormal unit vector. The normal parameter is assumed to have been normalized to a unit vector.

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

另請參閱 normal () 和 distanceToLine ().

[noexcept] float QVector3D:: distanceToPlane ( QVector3D plane1 , QVector3D plane2 , QVector3D plane3 ) const

Returns the distance from this vertex to a plane defined by the vertices plane1 , plane2 and plane3 .

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

The two vectors that define the plane are plane2 - plane1 and plane3 - plane1 .

另請參閱 normal () 和 distanceToLine ().

[noexcept] float QVector3D:: distanceToPoint ( QVector3D point ) const

Returns the distance from this vertex to a point defined by the vertex point .

另請參閱 distanceToPlane () 和 distanceToLine ().

[static constexpr noexcept] float QVector3D:: dotProduct ( QVector3D v1 , QVector3D v2 )

返迴點積為 v1 and v2 .

[constexpr noexcept] bool QVector3D:: isNull () const

返迴 true 若 x、y 和 z 坐標被設為 0.0,否則返迴 false .

[noexcept] float QVector3D:: length () const

從原點返迴嚮量長度。

另請參閱 lengthSquared () 和 normalized ().

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

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

另請參閱 length () 和 dotProduct ().

[static noexcept] QVector3D QVector3D:: normal ( QVector3D v1 , QVector3D v2 )

Returns the unit normal vector of a plane spanned by vectors v1 and v2 , which must not be parallel to one another.

使用 crossProduct () to compute the cross-product of v1 and v2 if you do not need the result to be normalized to a unit vector.

另請參閱 crossProduct () 和 distanceToPlane ().

[static noexcept] QVector3D QVector3D:: normal ( QVector3D v1 , QVector3D v2 , QVector3D v3 )

Returns the unit normal vector of a plane spanned by vectors v2 - v1 and v3 - v1 , which must not be parallel to one another.

使用 crossProduct () to compute the cross-product of v2 - v1 and v3 - v1 if you do not need the result to be normalized to a unit vector.

另請參閱 crossProduct () 和 distanceToPlane ().

[noexcept] void QVector3D:: normalize ()

Normalizes the current vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

另請參閱 length () 和 normalized ().

[noexcept] QVector3D QVector3D:: normalized () const

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

另請參閱 length () 和 normalize ().

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

Returns the window coordinates of this vector initially in object/model coordinates using the model view matrix modelView , the projection matrix projection and the viewport dimensions viewport .

When transforming from clip to normalized space, a division by the w component on the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.

注意: the returned y coordinates are in OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 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 )

Sets the z coordinate of this point to the given finite z 坐標。

另請參閱 z (), setX (),和 setY ().

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

返迴 QPoint form of this 3D vector. The z coordinate is dropped. The x and y coordinates are rounded to nearest integers.

另請參閱 toPointF () 和 toVector2D ().

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

返迴 QPointF form of this 3D vector. The z coordinate is dropped.

另請參閱 toPoint () 和 toVector2D ().

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

Returns the 2D vector form of this 3D vector, dropping the z coordinate.

另請參閱 toVector4D () 和 toPoint ().

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

Returns the 4D form of this 3D vector, with the w coordinate set to zero.

另請參閱 toVector2D () 和 toPoint ().

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

Returns the object/model coordinates of this vector initially in window coordinates using the model view matrix modelView , the projection matrix projection and the viewport dimensions viewport .

When transforming from clip to normalized space, a division by the w component of the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.

注意: y coordinates in viewport should use OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 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 ().

QVariant QVector3D:: operator QVariant () const

Returns the 3D vector as a QVariant .

[constexpr noexcept] QVector3D &QVector3D:: operator*= ( float factor )

Multiplies this vector's coordinates by the given finite factor and returns a reference to this vector.

另請參閱 operator/= () 和 operator* ().

[constexpr noexcept] QVector3D &QVector3D:: operator*= ( QVector3D vector )

Multiplies each component of this vector by the corresponding component in vector and returns a reference to this vector.

Note: this is not the same as the crossProduct () of this vector and vector . (Its components add up to the dot product of this vector and vector )。

這是重載函數。

另請參閱 crossProduct (), operator/= (),和 operator* ().

[constexpr noexcept] QVector3D &QVector3D:: operator+= ( QVector3D vector )

添加給定 vector to this vector and returns a reference to this vector.

另請參閱 operator-= ().

[constexpr noexcept] QVector3D &QVector3D:: operator-= ( QVector3D vector )

減去給定 vector from this vector and returns a reference to this vector.

另請參閱 operator+= ().

[constexpr] QVector3D &QVector3D:: operator/= ( QVector3D vector )

Divides each component of this vector by the corresponding component in vector and returns a reference to this vector.

The vector must have no component that is either zero or NaN.

另請參閱 operator*= () 和 operator/ ().

[constexpr] QVector3D &QVector3D:: operator/= ( float divisor )

Divides this vector's coordinates by the given divisor , and returns a reference to this vector. The divisor must not be either zero or NaN.

另請參閱 operator*= () 和 operator/ ().

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

Returns the component of the vector at index position i 作為可修改引用。

i must be a valid index position in the vector (i.e., 0 <= i < 3).

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

Returns the component of the vector at index position i .

i must be a valid index position in the vector (i.e., 0 <= i < 3).

相關非成員

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

返迴 true if v1 and v2 are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.

[constexpr noexcept] bool operator!= ( QVector3D v1 , QVector3D v2 )

返迴 true if v1 不等於 v2 ;否則返迴 false 。此運算符使用精確浮點比較。

[constexpr noexcept] QVector3D operator* ( QVector3D v1 , QVector3D v2 )

返迴 QVector3D object formed by multiplying each component of v1 by the corresponding component of v2 .

注意: This is not the same as the crossProduct () of v1 and v2 . (Its components add up to the dot product of v1 and 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 )

返迴 QVector3D object that is the sum of the given vectors, v1 and v2 ;各分量分彆相加。

另請參閱 QVector3D::operator+= ().

[constexpr noexcept] QVector3D operator- ( QVector3D v1 , QVector3D v2 )

返迴 QVector3D 對象的形成是通過減去 v2 from v1 ;分彆減去各分量。

另請參閱 QVector3D::operator-= ().

[constexpr noexcept] QVector3D operator- ( QVector3D vector )

返迴 QVector3D object that is formed by changing the sign of each component of the given vector .

相當於 QVector3D(0,0,0) - vector .

這是重載函數。

[constexpr] QVector3D operator/ ( QVector3D vector , QVector3D divisor )

返迴 QVector3D object formed by dividing each component of the given vector by the corresponding component of the given divisor .

The divisor must have no component that is either zero or NaN.

另請參閱 QVector3D::operator/= ().

[constexpr] QVector3D operator/ ( QVector3D vector , float divisor )

返迴 QVector3D object formed by dividing each component of the given vector 通過給定 divisor .

The divisor must not be either zero or NaN.

另請參閱 QVector3D::operator/= ().

QDataStream & operator<< ( QDataStream & stream , QVector3D vector )

寫入給定 vector 到給定 stream 並返迴流引用。

另請參閱 序列化 Qt 數據類型 .

[constexpr noexcept] bool operator== ( QVector3D v1 , QVector3D v2 )

返迴 true if v1 等於 v2 ;否則返迴 false 。此運算符使用精確浮點比較。

QDataStream & operator>> ( QDataStream & stream , QVector3D & vector )

讀取 3D 嚮量從給定 stream 進給定 vector 並返迴流引用。

另請參閱 序列化 Qt 數據類型 .