QVector4D 类

The QVector4D class represents a vector or vertex in 4D space. More...

头文件 #include <QVector4D>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

公共函数

QVector4D()
QVector4D(float xpos, float ypos, float zpos, float wpos)
QVector4D(QPoint point)
QVector4D(QPointF point)
QVector4D(QVector2D vector)
QVector4D(QVector2D vector, float zpos, float wpos)
QVector4D(QVector3D vector)
QVector4D(QVector3D vector, float wpos)
boolisNull() const
floatlength() const
floatlengthSquared() const
voidnormalize()
QVector4Dnormalized() const
voidsetW(float w)
voidsetX(float x)
voidsetY(float y)
voidsetZ(float z)
QPointtoPoint() const
QPointFtoPointF() const
QVector2DtoVector2D() const
QVector2DtoVector2DAffine() const
QVector3DtoVector3D() const
QVector3DtoVector3DAffine() const
floatw() const
floatx() const
floaty() const
floatz() const
QVariantoperator QVariant() const
QVector4D &operator*=(float factor)
QVector4D &operator*=(QVector4D vector)
QVector4D &operator+=(QVector4D vector)
QVector4D &operator-=(QVector4D vector)
QVector4D &operator/=(float divisor)
QVector4D &operator/=(QVector4D vector)
float &operator[](int i)
floatoperator[](int i) const

静态公共成员

floatdotProduct(QVector4D v1, QVector4D v2)
boolqFuzzyCompare(QVector4D v1, QVector4D v2)
booloperator!=(QVector4D v1, QVector4D v2)
QVector4Doperator*(float factor, QVector4D vector)
QVector4Doperator*(QVector4D vector, float factor)
QVector4Doperator*(QVector4D v1, QVector4D v2)
QVector4Doperator+(QVector4D v1, QVector4D v2)
QVector4Doperator-(QVector4D v1, QVector4D v2)
QVector4Doperator-(QVector4D vector)
QVector4Doperator/(QVector4D vector, float divisor)
QVector4Doperator/(QVector4D vector, QVector4D divisor)
QDataStream &operator<<(QDataStream &stream, QVector4D vector)
booloperator==(QVector4D v1, QVector4D v2)
QDataStream &operator>>(QDataStream &stream, QVector4D &vector)

详细描述

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

QVector4D类还可以用来表示4D空间中的顶点。因此,我们不需要提供一个独立的顶点类。

另请参阅 QQuaternionQVector2DQVector3D

成员函数文档

[constexpr noexcept] QVector4D::QVector4D()

构建一个空矢量,即坐标为(0,0,0,0)。

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

构建一个坐标为(xposyposzposwpos)的矢量。所有参数都必须是有限的。

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

从一个2D point构建一个包含x和y坐标的矢量,并将z和w坐标设为0。

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

从一个2D point构建一个包含x和y坐标的矢量,并将z和w坐标设为0。

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

从指定的2D vector构建一个4D矢量。z和w坐标被设为零。

另请参阅 toVector2D

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

从指定的二维向量创建4D向量。将z和w坐标分别设置为zposwpos,每个都必须是有穷数。

另请参阅 toVector2D

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

从指定的三维向量创建4D向量。将w坐标设置为0。

另请参阅toVector3D()

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

从指定的三维向量创建4D向量。将w坐标设置为wpos,它必须是有穷数。

另请参阅toVector3D()

[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

返回此4D向量的2D向量形式,删除z和w坐标。

另请参阅toVector2DAffine()、toVector3D()和toPoint

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

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

另请参阅toVector2D()、toVector3DAffine()和toPoint

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

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

参阅 toVector3DAffine()、toVector2D() 和 toPoint()。

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

返回此4D向量的3D向量形式,通过将x、y和z坐标除以w坐标。如果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

将4D向量作为QVariant返回。

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

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

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

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

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

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

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

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

参阅 operator-=()。

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

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

另请参阅 operator+=

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

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

另请参阅 operator*=

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

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

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

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

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

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

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

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

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

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

相关非成员函数

[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*(float factor, QVector4D vector)

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

另请参阅 QVector4D::operator*=

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

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

另请参阅 QVector4D::operator*=

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

返回通过将 v1 的每个分量与 v2 的对应分量相乘而形成的 QVector4D 对象。

注意:这绝不是在任何意义上 v1v2 的叉积。(其分量之和等于 v1v2 的点积。)

另请参阅 QVector4D::operator*=

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

返回一个新的 QVector4D 对象,它是给定向量 v1v2 的和,每个分量单独相加。

也见:QVector4D::operator+=()。

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

返回一个新的 QVector4D 对象,它是由从 v1 中减去 v2 形成的;每个分量单独相减。

也见:QVector4D::operator-=()。

[constexpr noexcept] QVector4D operator-(QVector4D vector)

这是一个重载函数。

返回一个新的 QVector4D 对象,它是通过改变给定 vector 所有可能的分量的符号形成的。

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

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

返回通过将给定 vector 的每个分量除以给定 divisor 而形成的 QVector4D 对象。

divisor 不能为 0 或 NaN。

也见:QVector4D::operator/=()。

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

返回通过将给定 vector 的每个分量除以给定 divisor 的对应分量而形成的 QVector4D 对象。

divisor 必须没有 0 或 NaN 的组件。

也见:QVector4D::operator/=()。

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

将给定的vector写入给定的stream并返回对stream的引用。

参见序列化Qt数据类型

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

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

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

从给定的stream中读取一个4D向量到给定的vector中,并返回对stream的引用。

参见序列化Qt数据类型

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献都属于各自的版权所有者。本文档按GNU自由文档许可版本1.3的条款颁发,由自由软件基金会发布。Qt及其相关标志是芬兰以及/或其他国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。