QVector4D 类
The QVector4D class represents a vector or vertex in 4D space. More...
头文件 | #include <QVector4D> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员的列表,包括继承成员
- QVector4D 是 3D 渲染的一部分。 了解更多...
公共函数
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) | |
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*=(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) |
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*(float factor, QVector4D vector) |
QVector4D | operator*(QVector4D vector, float factor) |
QVector4D | operator*(QVector4D v1, QVector4D v2) |
QVector4D | operator+(QVector4D v1, QVector4D v2) |
QVector4D | operator-(QVector4D v1, QVector4D v2) |
QVector4D | operator-(QVector4D vector) |
QVector4D | operator/(QVector4D vector, float divisor) |
QVector4D | operator/(QVector4D vector, QVector4D divisor) |
QDataStream & | operator<<(QDataStream &stream, QVector4D vector) |
bool | operator==(QVector4D v1, QVector4D v2) |
QDataStream & | operator>>(QDataStream &stream, QVector4D &vector) |
详细描述
矢量是3D空间4D仿射表示的主要构建块之一。它们由四个有限浮点坐标组成,传统上称为x、y、z和w。
QVector4D类还可以用来表示4D空间中的顶点。因此,我们不需要提供一个独立的顶点类。
另请参阅 QQuaternion、QVector2D 和 QVector3D。
成员函数文档
[constexpr noexcept]
QVector4D::QVector4D()
构建一个空矢量,即坐标为(0,0,0,0)。
[constexpr noexcept]
QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos)
构建一个坐标为(xpos、ypos、zpos、wpos)的矢量。所有参数都必须是有限的。
[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坐标分别设置为zpos和wpos,每个都必须是有穷数。
另请参阅 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)
返回v1和v2的点积。
[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的向量的标准化形式。
[constexpr noexcept]
void QVector4D::setW(float w)
将此点的w坐标设置为指定的有限w坐标。
[constexpr noexcept]
void QVector4D::setX(float x)
将此点的x坐标设置为指定的有限x坐标。
[constexpr noexcept]
void QVector4D::setY(float y)
将此点的y坐标设置为指定的有限y坐标。
[constexpr noexcept]
void QVector4D::setZ(float z)
将此点的z坐标设置为指定的有限z坐标。
[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坐标。
[constexpr noexcept]
float QVector4D::x() const
返回此点的x坐标。
[constexpr noexcept]
float QVector4D::y() const
返回此点的y坐标。
[constexpr noexcept]
float QVector4D::z() const
返回此点的z坐标。
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)
如果 v1 和 v2 相等,则返回 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 对象。
注意:这绝不是在任何意义上 v1 和 v2 的叉积。(其分量之和等于 v1 和 v2 的点积。)
另请参阅 QVector4D::operator*=。
[constexpr noexcept]
QVector4D operator+(QVector4D v1, QVector4D v2)
返回一个新的 QVector4D 对象,它是给定向量 v1 和 v2 的和,每个分量单独相加。
也见: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.的商标。所有其他商标均为各自所有者的财产。