QVector2D 类

QVector2D 类表示 2D 空间中的一个向量或顶点。 更多...

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

公共函数

QVector2D()
QVector2D(float xpos, float ypos)
QVector2D(QPoint point)
QVector2D(QPointF point)
QVector2D(QVector3D vector)
QVector2D(QVector4D vector)
floatdistanceToLine(QVector2D point, QVector2D direction) const
floatdistanceToPoint(QVector2D point) const
boolisNull() const
floatlength() const
floatlengthSquared() const
voidnormalize()
QVector2Dnormalized() const
voidsetX(float x)
voidsetY(float y)
QPointtoPoint() const
QPointFtoPointF() const
QVector3DtoVector3D() const
QVector4DtoVector4D() const
floatx() const
floaty() const
QVariantoperator QVariant() const
QVector2D &operator*=(float factor)
QVector2D &operator*=(QVector2D vector)
QVector2D &operator+=(QVector2D vector)
QVector2D &operator-=(QVector2D vector)
QVector2D &operator/=(float divisor)
QVector2D &operator/=(QVector2D vector)
float &operator[](int i)
floatoperator[](int i) const

静态公共成员

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

详细描述

二维表示和绘制的构成要素之一是向量。它由两个有限的浮点坐标组成,传统上称为 x 和 y。

QVector2D 类也可以用来表示二维空间中的顶点,因此我们不需要提供单独的顶点类。

另请参阅QVector3DQVector4DQQuaternion

成员函数文档

[constexpr noexcept] QVector2D::QVector2D()

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

[constexpr noexcept] QVector2D::QVector2D(float xpos, float ypos)

构造坐标为()的向量。两个坐标必须是有限的。

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

从 2D point 中获取 x 和 y 坐标来构造一个向量。

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

从 2D point 中获取 x 和 y 坐标来构造一个向量。

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

从 3D vector 获取 x 和 y 坐标来构造一个向量。向量中的 z 坐标会被丢弃。

另请参阅toVector3D

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

从 3D vector 获取 x 和 y 坐标来构造一个向量。向量中的 z 和 w 坐标会被丢弃。

另请参阅toVector4D

[noexcept] float QVector2D::distanceToLine(QVector2D point, QVector2D direction) const

返回该顶点到一个由 和单位向量 direction 定义的线的距离。

如果 direction 是零向量,则它不定义一条线。在这种情况下,返回从 到该顶点的距离。

另请参阅distanceToPoint().

[noexcept] float QVector2D::distanceToPoint(QVector2D point) const

返回该顶点到由顶点 point 定义的重心的距离。

另请参阅distanceToLine().

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

返回 v1v2 的点积。

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

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

[noexcept] float QVector2D::length() const

返回从原点到向量的长度。

另请参阅lengthSquared() 和 normalized().

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

返回从原点到向量的平方长度。这等价于该向量与其自身的点积。

另请参阅length() 和 dotProduct().

[noexcept] void QVector2D::normalize()

就地归一化当前的向量。如果此向量为零向量或向量的长度非常接近 1,则不执行任何操作。

另请参阅length() 和 normalized().

[noexcept] QVector2D QVector2D::normalized() const

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

如果此向量为零向量,则返回一个零向量。如果向量的长度非常接近 1,则返回该向量本身。否则返回长度为 1 的向量的归一化形式。

另请参阅length() 和 normalize().

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

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

另请参阅x() 和 setY().

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

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

另请参阅y() 和 setX().

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

返回该2D向量的QPoint形式。每个坐标都四舍五入到最接近的整数。

另请参阅toPointF() 和 toVector3D

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

返回该2D向量的QPointF形式。

另请参阅toPoint() 和 toVector3D

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

返回该2D向量的3D形式,z坐标设置为0。

另请参阅toVector4D() 和 toPoint

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

返回该2D向量的4D形式,z和w坐标设置为0。

另请参阅toVector3D() 和 toPoint

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

返回该点的x坐标。

另请参阅setX() 和 y

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

返回该点的y坐标。

另请参阅setY() 和 x

QVariant QVector2D::operator QVariant() const

将2D向量作为QVariant返回。

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

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

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

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

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

注意:这不是此向量与vector的叉积。(其分量之和为此向量与vector的点积。)

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

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

将给定的 向量 添加到这个向量中,并返回对这个向量的引用。

另请参阅 运算符-=()。

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

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

另请参阅 运算符+=()。

[constexpr] QVector2D &QVector2D::operator/=(float 除数)

将此向量的坐标除以给定的 除数 并返回对这个向量的引用。除数不能为零或NaN。

另请参阅 运算符*=()。

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

将本向量的每个分量除以对应于 vector 的分量并返回对这个向量的引用。

向量 不能有任何分量为零或NaN。

另请参阅 运算符*=() 和 运算符/

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

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

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

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

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

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

相关非成员

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

如果 v1v2 相等,则返回 true,允许在浮点数比较中有一定的模糊度因子;否则返回 false

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

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

[constexpr] QVector2D operator*(float 系数, QVector2D vector)

返回给定 向量 的副本,乘以给定的有限 系数

另请参阅 QVector2D::operator*=()。

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

返回给定 向量 的副本,乘以给定的有限 系数

另请参阅 QVector2D::operator*=()。

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

返回由将v1的每个分量乘以v2的相应分量所形成的QVector2D对象。

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

另请参阅 QVector2D::operator*=()。

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

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

另请参阅:QVector2D::operator+=().

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

返回一个QVector2D对象,它是通过从v1减去v2形成的;每个分量分别相减。

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

[constexpr noexcept] QVector2D operator-(QVector2D vector)

这是一个重载函数。

返回一个QVector2D对象,它是通过改变给定vector的每个分量的符号形成的。

等同于QVector2D(0,0) - vector

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

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

divisor不能是零或NaN。

另请参阅:QVector2D::operator/=().

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

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

divisor的任何分量都不能是零或NaN。

另请参阅:QVector2D::operator/=().

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

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

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

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

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

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

从指定的 stream 中读取 2D 向量到指定的 vector,并返回对流的引用。

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

© 2024 The Qt Company Ltd. 本文档中的贡献包括其各自拥有者的版权。本文档按照自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款提供。Qt 及相关标志是 The Qt Company Ltd. 在芬兰及全球其他国家的商标。所有其他商标均为其各自拥有者的财产。