QVector2D Class
QVector2D 类表示二维空间中的向量或顶点。更多内容...
| 头文件: | #include <QVector2D> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 所有成员的列表,包括继承的成员
- QVector2D 属于“绘图类”和“3D 渲染”部分。
公共函数
| QVector2D() | |
| QVector2D(QPoint point) | |
| QVector2D(QPointF point) | |
| QVector2D(QVector3D vector) | |
| QVector2D(QVector4D vector) | |
| QVector2D(float xpos, float ypos) | |
| float | distanceToLine(QVector2D point, QVector2D direction) const |
| float | distanceToPoint(QVector2D point) const |
| bool | isNull() const |
| float | length() const |
| float | lengthSquared() const |
| void | normalize() |
| QVector2D | normalized() const |
| void | setX(float x) |
| void | setY(float y) |
| QPoint | toPoint() const |
| QPointF | toPointF() const |
| QVector3D | toVector3D() const |
| QVector4D | toVector4D() const |
| float | x() const |
| float | y() const |
| operator QVariant() const | |
| QVector2D & | operator*=(QVector2D vector) |
| QVector2D & | operator*=(float factor) |
| QVector2D & | operator+=(QVector2D vector) |
| QVector2D & | operator-=(QVector2D vector) |
| QVector2D & | operator/=(QVector2D vector) |
| QVector2D & | operator/=(float divisor) |
| float & | operator[](int i) |
| float | operator[](int i) const |
静态公共成员
| float | dotProduct(QVector2D v1, QVector2D v2) |
相关的非成员
| bool | qFuzzyCompare(QVector2D v1, QVector2D v2) |
(since 6.12) size_t | qHash(QVector2D key, size_t seed = 0) |
| bool | operator!=(QVector2D v1, QVector2D v2) |
| QVector2D | operator*(QVector2D v1, QVector2D v2) |
| QVector2D | operator*(QVector2D vector, float factor) |
| QVector2D | operator*(float factor, QVector2D vector) |
| QVector2D | operator+(QVector2D v1, QVector2D v2) |
| QVector2D | operator-(QVector2D v1, QVector2D v2) |
| QVector2D | operator-(QVector2D vector) |
| QVector2D | operator/(QVector2D vector, QVector2D divisor) |
| QVector2D | operator/(QVector2D vector, float divisor) |
| QDataStream & | operator<<(QDataStream &stream, QVector2D vector) |
| bool | operator==(QVector2D v1, QVector2D v2) |
| QDataStream & | operator>>(QDataStream &stream, QVector2D &vector) |
另请参阅 QVector3D 、QVector4D 以及QQuaternion 。
成员函数文档
[constexpr noexcept] QVector2D::QVector2D()
构建一个零向量,即坐标为 (0, 0) 的向量。
[explicit constexpr noexcept] QVector2D::QVector2D(QPoint point)
根据一个二维point ,构建一个包含x和y坐标的向量。
[explicit constexpr noexcept] QVector2D::QVector2D(QPointF point)
根据一个二维point ,构建一个包含x和y坐标的向量。
[explicit constexpr noexcept] QVector2D::QVector2D(QVector3D vector)
根据三维vector ,构建一个包含x和y坐标的向量。vector 的z坐标将被忽略。
另请参阅 toVector3D()。
[explicit constexpr noexcept] QVector2D::QVector2D(QVector4D vector)
根据三维vector 构建一个包含x和y坐标的向量。vector 的z和w坐标将被舍弃。
另请参阅 toVector4D()。
[constexpr noexcept] QVector2D::QVector2D(float xpos, float ypos)
构造一个坐标为 (xpos,ypos) 的向量。这两个坐标必须是有限的。
[noexcept] float QVector2D::distanceToLine(QVector2D point, QVector2D direction) const
返回该顶点到由point 和单位向量direction 定义的直线之间的距离。
如果direction 是零向量,则它无法定义一条直线。在这种情况下,将返回从point 到该顶点的距离。
另请参阅 distanceToPoint()。
[noexcept] float QVector2D::distanceToPoint(QVector2D point) const
返回该顶点到由顶点point 定义的点之间的距离。
另请参阅 distanceToLine()。
[static constexpr noexcept] float QVector2D::dotProduct(QVector2D v1, QVector2D v2)
返回v1 与v2 的点积。
[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 的该向量的归一化形式。
[constexpr noexcept] void QVector2D::setX(float x)
将该点的 x 坐标设置为给定的有限坐标x 。
[constexpr noexcept] void QVector2D::setY(float y)
将该点的 y 坐标设置为给定的有限坐标y 。
[constexpr noexcept] QPoint QVector2D::toPoint() const
返回该二维向量的QPoint 形式。每个坐标均四舍五入为最接近的整数。
另请参阅 toPointF() 和toVector3D()。
[constexpr noexcept] QPointF QVector2D::toPointF() const
返回该二维向量的QPointF 表示形式。
另请参阅 toPoint() 和toVector3D()。
[constexpr noexcept] QVector3D QVector2D::toVector3D() const
返回该二维向量的三维形式,其中 z 坐标设为零。
另请参阅 toVector4D() 和toPoint()。
[constexpr noexcept] QVector4D QVector2D::toVector4D() const
返回该二维向量的四维形式,其中 z 和 w 坐标均设为零。
另请参阅 toVector3D() 和toPoint()。
[constexpr noexcept] float QVector2D::x() const
返回该点的 x 坐标。
[constexpr noexcept] float QVector2D::y() const
返回该点的 y 坐标。
QVector2D::operator QVariant() const
将该二维向量作为QVariant 返回。
[constexpr noexcept] QVector2D &QVector2D::operator*=(QVector2D vector)
将该向量的每个分量与vector 的对应分量相乘,并返回该向量的引用。
注意:这 并非该向量与vector 的叉积。(其各分量的和等于该向量与vector 的点积。)
另请参阅 operator/=() 和operator*()。
[constexpr noexcept] QVector2D &QVector2D::operator*=(float factor)
将该向量的坐标乘以给定的有限数factor ,并返回该向量的引用。
另请参阅 operator/=() 和operator*()。
[constexpr noexcept] QVector2D &QVector2D::operator+=(QVector2D vector)
将给定的vector 添加到该向量中,并返回该向量的引用。
另请参阅 operator-=()。
[constexpr noexcept] QVector2D &QVector2D::operator-=(QVector2D vector)
从该向量中减去给定的vector ,并返回该向量的引用。
另请参阅 operator+=()。
[constexpr] QVector2D &QVector2D::operator/=(QVector2D vector)
将该向量的每个分量除以vector 中对应的分量,并返回该向量的引用。
vector 中的所有分量均不得为零或 NaN。
另请参阅 operator*=() 和operator/()。
[constexpr] QVector2D &QVector2D::operator/=(float divisor)
将该向量的坐标除以给定的divisor ,并返回该向量的引用。divisor 不能为零或 NaN。
另请参阅 operator*=()。
[constexpr] float &QVector2D::operator[](int i)
返回向量中索引位置i 处的分量,作为可修改的引用。
i i 必须是向量中的有效索引位置(即 0 <= < 2)。
[constexpr] float QVector2D::operator[](int i) const
返回向量在索引位置i 处的分量。
i 该索引位置必须是向量中的有效索引位置(即 0 <=i < 2)。
相关的非成员函数
[noexcept] bool qFuzzyCompare(QVector2D v1, QVector2D v2)
如果 `v1 ` 和 `v2 ` 相等(浮点数比较允许存在微小误差),则返回 `true `;否则返回 `false`。
[constexpr noexcept, since 6.12] size_t qHash(QVector2D key, size_t seed = 0)
返回key 的哈希值,并使用seed 作为计算的种子。
该函数于 Qt 6.12 中引入。
[constexpr noexcept] bool operator!=(QVector2D v1, QVector2D v2)
如果 `v1 ` 不等于 `v2`,则返回 `true `;否则返回 `false`。该运算符使用精确浮点比较。
[constexpr noexcept] QVector2D operator*(QVector2D v1, QVector2D v2)
返回由v1 的每个分量与v2 的对应分量相乘而形成的QVector2D 对象。
注意:这 绝非v1 与v2 的任何意义上的叉积。(其各分量的和等于v1 与v2 的点积。)
另请参见 QVector2D::operator*=()。
[constexpr noexcept] QVector2D operator*(QVector2D vector, float factor)
返回给定vector 的副本,并将其与给定的有限factor 相乘。
另请参阅 QVector2D::operator*=()。
[constexpr noexcept] QVector2D operator*(float factor, QVector2D vector)
返回给定vector 的副本,并将其乘以给定的有限factor 。
另请参阅 QVector2D::operator*=()。
[constexpr noexcept] QVector2D operator+(QVector2D v1, QVector2D v2)
返回一个QVector2D 对象,该对象是给定向量v1 和v2 的和;每个分量分别相加。
另请参阅 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, QVector2D divisor)
返回一个QVector2D 对象,该对象通过将给定的vector 的每个分量除以给定的divisor 的相应分量而形成。
该divisor 中不得包含任何值为零或NaN的分量。
另请参阅 QVector2D::operator/=()。
[constexpr] QVector2D operator/(QVector2D vector, float divisor)
返回一个QVector2D 对象,该对象由将给定的vector 的每个分量除以给定的divisor 后得到。
该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 中读取一个二维向量到给定的vector 中,并返回该流的引用。
另请参阅 《Qt 数据类型的序列化》。
© 2026 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.