QVector4D Class

QVector4D 类表示 4D 空间中的矢量或顶点。更多

头文件: #include <QVector4D>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

公共函数

QVector4D()
QVector4D(QPoint point)
QVector4D(QPointF point)
QVector4D(QVector2D vector)
QVector4D(QVector3D vector)
QVector4D(QVector3D vector, float wpos)
QVector4D(QVector2D vector, float zpos, float wpos)
QVector4D(float xpos, float ypos, float zpos, float wpos)
bool isNull() const
float length() const
float lengthSquared() const
void normalize()
QVector4D normalized() const
void setW(float w)
void setX(float x)
void setY(float y)
void setZ(float z)
QPoint toPoint() const
QPointF toPointF() const
QVector2D toVector2D() const
QVector2D toVector2DAffine() const
QVector3D toVector3D() const
QVector3D toVector3DAffine() const
float w() const
float x() const
float y() const
float z() const
QVariant operator QVariant() const
QVector4D &operator*=(QVector4D vector)
QVector4D &operator*=(float factor)
QVector4D &operator+=(QVector4D vector)
QVector4D &operator-=(QVector4D vector)
QVector4D &operator/=(QVector4D vector)
QVector4D &operator/=(float divisor)
float &operator[](int i)
float operator[](int i) const

静态公共成员

float dotProduct(QVector4D v1, QVector4D v2)
bool qFuzzyCompare(QVector4D v1, QVector4D v2)
bool operator!=(QVector4D v1, QVector4D v2)
QVector4D operator*(QVector4D v1, QVector4D v2)
QVector4D operator*(QVector4D vector, float factor)
QVector4D operator*(float factor, QVector4D vector)
QVector4D operator+(QVector4D v1, QVector4D v2)
QVector4D operator-(QVector4D v1, QVector4D v2)
QVector4D operator-(QVector4D vector)
QVector4D operator/(QVector4D vector, QVector4D divisor)
QVector4D operator/(QVector4D vector, float divisor)
QDataStream &operator<<(QDataStream &stream, QVector4D vector)
bool operator==(QVector4D v1, QVector4D v2)
QDataStream &operator>>(QDataStream &stream, QVector4D &vector)

详细说明

矢量是三维空间 4D 仿真表示法的主要构建模块之一。它们由四个有限浮点坐标组成,传统上称为 x、y、z 和 w。

QVector4D 类也可用于表示 4D 空间中的顶点。因此,我们不需要提供单独的顶点类。

另请参见 QQuaternion,QVector2D, 和QVector3D

成员函数文档

[constexpr noexcept] QVector4D::QVector4D()

构造一个空向量,即坐标为(0, 0, 0, 0)。

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

构建一个向量,其 x 和 y 坐标来自二维point ,z 和 w 坐标为 0。

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

构建一个向量,其 x 和 y 坐标来自二维point ,z 和 w 坐标为 0。

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

根据指定的 2Dvector 构建一个 4D 向量。z坐标和w坐标设置为零。

另请参见 toVector2D().

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

根据指定的 3Dvector 构建一个 4D 向量。w 坐标设置为零。

另请参见 toVector3D().

[constexpr noexcept] QVector4D::QVector4D(QVector3D vector, float wpos)

根据指定的 3Dvector 构建一个 4D 向量。w 坐标设置为wpos ,必须是有限坐标。

另请参见 toVector3D().

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

根据指定的二维vector 构建一个四维向量。z 坐标和 w 坐标分别设置为zposwpos ,每个坐标都必须是有限的。

另请参见 toVector2D().

[constexpr noexcept] QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos)

构造一个坐标为 (xpos,ypos,zpos,wpos) 的向量。所有参数必须是有限的。

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

返回v1v2 的点积。

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

如果 x、y、z 和 w 坐标设置为 0.0,则返回true ,否则返回false

[noexcept] float QVector4D::length() const

返回矢量从原点出发的长度。

另请参见 lengthSquared() 和normalized()。

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

返回向量从原点出发的平方长度。这相当于向量与自身的点积。

另请参见 length() 和dotProduct()。

[noexcept] void QVector4D::normalize()

将当前向量归一化。如果该向量为空向量或向量长度非常接近 1,则不会发生任何操作。

另请参见 length() 和normalized()。

[noexcept] QVector4D QVector4D::normalized() const

返回此向量的归一化单位向量形式。

如果该向量为空,则返回一个空向量。如果向量的长度非常接近 1,那么向量将按原样返回。否则,将返回长度为 1 的归一化形式的向量。

另请参见 length() 和normalize()。

[constexpr noexcept] void QVector4D::setW(float w)

将此点的 w 坐标设置为给定的有限w 坐标。

另请参阅 w(),setX(),setY() 和setZ().

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

将此点的 x 坐标设置为给定的有限x 坐标。

另请参阅 x(),setY(),setZ() 和setW().

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

将此点的 y 坐标设置为给定的有限y 坐标。

另请参阅 y(),setX(),setZ() 和setW().

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

将此点的 Z 坐标设置为给定的有限z 坐标。

另请参阅 z(),setX(),setY() 和setW().

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

返回此 4D 向量的QPoint 格式。z 和 w 坐标将被删除。x 和 y 坐标四舍五入为最接近的整数。

另请参阅 toPointF() 和toVector2D()。

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

返回此 4D 向量的QPointF 格式。去掉 z 和 w 坐标。

另请参见 toPoint() 和toVector2D()。

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

返回此四维向量的二维向量形式,去掉 z 和 w 坐标。

另请参见 toVector2DAffine()、toVector3D() 和toPoint()。

[constexpr noexcept] QVector2D QVector4D::toVector2DAffine() const

将 x 坐标和 y 坐标除以 w 坐标,去掉 z 坐标,返回此 4D 向量的 2D 向量形式。如果 w 为零,则返回空向量。

另请参见 toVector2D()、toVector3DAffine() 和toPoint()。

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

返回此 4D 向量的 3D 向量形式,去掉 w 坐标。

另请参见 toVector3DAffine()、toVector2D() 和toPoint()。

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

用 x、y 和 z 坐标除以 w 坐标,返回此 4D 向量的 3D 向量形式。如果 w 为零,则返回空向量。

另请参见 toVector3D()、toVector2DAffine() 和toPoint()。

[constexpr noexcept] float QVector4D::w() const

返回此点的 w 坐标。

另请参见 setW()、x()、y() 和z()。

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

返回该点的 x 坐标。

另请参见 setX()、y()、z() 和w()。

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

返回该点的 y 坐标。

另请参阅 setY()、x()、z() 和w()。

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

返回该点的 Z 坐标。

另请参阅 setZ()、x()、y() 和w()。

QVariant QVector4D::operator QVariant() const

QVariant 的形式返回 4D 向量。

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

将此向量的每个分量与vector 的相应分量相乘,并返回此向量的引用。

另请参阅 operator/=() 和operator*()。

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

将此向量的坐标与给定的有限factor 相乘,并返回此向量的引用。

另请参阅 operator/=() 和operator*()。

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

将给定的vector 添加到此向量,并返回此向量的引用。

另请参见 operator-=().

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

从该向量减去给定的vector ,并返回该向量的引用。

另请参见 operator+=().

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

将此向量的每个分量除以vector 的相应分量,并返回此向量的引用。

vector 必须没有零或 NaN 的分量。

另请参见 operator*=() 和operator/()。

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

将此向量的坐标除以给定的divisor ,并返回此向量的引用。divisor 不能为零或 NaN。

另请参阅 operator*=() 。

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

以可修改的引用形式返回位于i 索引位置的向量分量。

i 必须是向量中的有效索引位置(即 0 <= < 4)。i

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

返回位于i 索引位置的向量分量。

i 必须是向量中的有效索引位置(即 0 <= < 4)。i

相关非会员

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

如果v1v2 相等,则返回true ,允许在浮点比较中使用较小的模糊系数;否则返回 false。

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

如果v1 不等于v2 ,则返回true ;否则返回false 。该运算符使用精确浮点比较法。

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

返回QVector4D 对象,该对象由v1 的每个分量乘以v2 的相应分量构成。

注意: 从任何意义上讲,这都不是v1v2 的交乘。(其分量相加等于v1v2 的点积)。

另请参见 QVector4D::operator*=()。

[constexpr noexcept] QVector4D operator*(QVector4D vector, float factor)

返回给定vector 乘以给定factor 的副本。

另请参见 QVector4D::operator*=()。

[constexpr noexcept] QVector4D operator*(float factor, QVector4D vector)

返回给定vector 乘以给定factor 的副本。

另请参见 QVector4D::operator*=()。

[constexpr noexcept] QVector4D operator+(QVector4D v1, QVector4D v2)

返回一个QVector4D 对象,它是给定向量v1v2 的总和;每个分量分别相加。

另请参见 QVector4D::operator+=().

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

返回一个QVector4D 对象,该对象由v2v1 相减而得,每个部分分别相减。

另请参阅 QVector4D::operator-=().

[constexpr noexcept] QVector4D operator-(QVector4D vector)

这是一个重载函数。

返回QVector4D 对象,该对象是通过改变给定vector 的所有三个分量的符号形成的。

等价于QVector4D(0,0,0,0) - vector

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

返回QVector4D 对象,该对象由给定的vector 的每个分量除以给定的divisor 的相应分量构成。

divisor 必须没有零或 NaN 的分量。

另请参见 QVector4D::operator/=()。

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

返回QVector4D 对象,该对象由给定的vector 的每个分量除以给定的divisor 形成。

divisor 不能为零或 NaN。

另请参阅 QVector4D::operator/=()。

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

将给定的vector 写入给定的stream ,并返回对该数据流的引用。

另请参阅 序列化 Qt 数据类型

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

如果v1 等于v2 ,则返回true ;否则返回false 。该运算符使用精确浮点比较法。

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

将一个 4D 向量从给定的stream 读入给定的vector ,并返回对该数据流的引用。

另请参阅 序列化 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.