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 plane 和 normal 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 ().
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 坐標。
[constexpr noexcept]
void
QVector3D::
setY
(
float
y
)
將此點的 Y 坐標設為給定有限 y 坐標。
[constexpr noexcept]
void
QVector3D::
setZ
(
float
z
)
Sets the z coordinate of this point to the given finite z 坐標。
[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 ().
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 坐標。
[constexpr noexcept]
float
QVector3D::
y
() const
返迴此點的 Y 坐標。
[constexpr noexcept]
float
QVector3D::
z
() const
返迴此點的 z 坐標。
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/= ().
寫入給定 vector 到給定 stream 並返迴流引用。
另請參閱 序列化 Qt 數據類型 .
[constexpr noexcept]
bool
operator==
(
QVector3D
v1
,
QVector3D
v2
)
返迴
true
if
v1
等於
v2
;否則返迴
false
。此運算符使用精確浮點比較。
讀取 3D 嚮量從給定 stream 進給定 vector 並返迴流引用。
另請參閱 序列化 Qt 數據類型 .