QVector3D 类表示 3D 空间中的向量或顶点。 更多...
头: | #include <QVector3D> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
QVector3D () | |
QVector3D (float xpos , float ypos , float zpos ) | |
QVector3D (QPoint point ) | |
QVector3D (QPointF point ) | |
QVector3D (QVector2D vector ) | |
QVector3D (QVector2D vector , float zpos ) | |
QVector3D (QVector4D vector ) | |
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/= (float divisor ) |
QVector3D & | operator/= (QVector3D vector ) |
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* (float factor , QVector3D vector ) |
QVector3D | operator* (QVector3D vector , float factor ) |
QVector3D | operator* (QVector3D v1 , QVector3D v2 ) |
QVector3D | operator+ (QVector3D v1 , QVector3D v2 ) |
QVector3D | operator- (QVector3D v1 , QVector3D v2 ) |
QVector3D | operator- (QVector3D vector ) |
QVector3D | operator/ (QVector3D vector , float divisor ) |
QVector3D | operator/ (QVector3D vector , QVector3D 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)。
[constexpr noexcept]
QVector3D::
QVector3D
(
float
xpos
,
float
ypos
,
float
zpos
)
构造向量采用坐标 ( xpos , ypos , zpos )。所有参数必须是有限的。
[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 ().
[constexpr noexcept]
QVector3D::
QVector3D
(
QVector2D
vector
,
float
zpos
)
构造 3D 向量从指定 2D vector 。z 坐标被设为 zpos ,必须是有限的。
另请参阅 toVector2D ().
[explicit constexpr noexcept]
QVector3D::
QVector3D
(
QVector4D
vector
)
构造 3D 向量从指定 4D vector . The w coordinate is dropped.
另请参阅 toVector4D ().
[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/=
(
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]
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]
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*
(
float
factor
,
QVector3D
vector
)
返回副本为给定 vector ,乘以给定有限 factor .
另请参阅 QVector3D::operator*= ().
[constexpr noexcept]
QVector3D
operator*
(
QVector3D
vector
,
float
factor
)
返回副本为给定 vector ,乘以给定有限 factor .
另请参阅 QVector3D::operator*= ().
[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
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
,
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/= ().
[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/= ().
写入给定 vector 到给定 stream 并返回流引用。
另请参阅 序列化 Qt 数据类型 .
[constexpr noexcept]
bool
operator==
(
QVector3D
v1
,
QVector3D
v2
)
返回
true
if
v1
等于
v2
;否则返回
false
。此运算符使用精确浮点比较。
读取 3D 向量从给定 stream 进给定 vector 并返回流引用。
另请参阅 序列化 Qt 数据类型 .