class QVector3D#

QVector3D 类表示三维空间中的向量或顶点。 更多

自版本 4.6 以来。

概览#

方法#

静态函数#

注意

本文档可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单向我们反馈。

详细说明#

向量是3D表示和绘图的主要构建块之一。它由三个有限的浮点坐标组成,传统上被称为x、y和z。

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

另请参阅

QVector2D QVector4D QQuaternion

__init__(point)#
参数:

pointQPoint

使用2D点坐标构建一个向量,并将z坐标设为0。

__init__(point)
参数:

pointQPointF

使用2D点坐标构建一个向量,并将z坐标设为0。

__init__(vector)
参数:

vectorQVector2D

从指定的2D向量化构建一个3D向量。z坐标设为零。

另请参阅

toVector2D()

__init__(vector, zpos)
参数:

从指定的2D向量化构建一个3D向量。z坐标设为zpos,它必须是有限的。

另请参阅

toVector2D()

__init__(vector)
参数:

vectorQVector4D

从指定的4D向量化构建一个3D向量。w坐标将被丢弃。

另请参阅

toVector4D()

__init__(xpos, ypos, zpos)
参数:
  • xpos – float

  • ypos – float

  • zpos – float

构建具有坐标 (xpos, ypos, zpos) 的向量。所有参数必须是有限的。

__init__()

构建空向量,即坐标为 (0, 0, 0) 的向量。

__reduce__()#
返回类型:

对象

__repr__()#
返回类型:

对象

静态 crossProduct(v1, v2)#
参数:
返回类型:

QVector3D

返回向量 v1v2 的叉积,该叉积垂直于由 v1v2 扩展的平面。如果两个向量平行,则结果为 0。

另请参阅

normal()

distanceToLine(point, direction)#
参数:
返回类型:

float

返回此顶点与由 point 和单位向量 direction 定义的线的距离。

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

另请参阅

distanceToPlane()

distanceToPlane(plane, normal)#
参数:
返回类型:

float

返回从此顶点到由顶点 plane 和单位向量 normal 定义的平面的距离。假设已将 normal 参数归一化为单位向量。

如果顶点在平面下方,返回值将为负,如果顶点在平面上,则返回值为 0。

另请参阅

normal() distanceToLine()

distanceToPlane(plane1, plane2, plane3)
参数:
返回类型:

float

返回从该顶点到由顶点 plane1plane2plane3 定义的平面的距离。

如果顶点在平面下方,返回值将为负,如果顶点在平面上,则返回值为 0。

定义平面的两个向量是 plane2 - plane1plane3 - plane1

另请参阅

normal() distanceToLine()

distanceToPoint(point)
参数:

pointQVector3D

返回类型:

float

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

静态dotProduct(v1, v2)
参数:
返回类型:

float

返回 v1v2 的点积。

isNull()
返回类型:

bool

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

length()
返回类型:

float

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

lengthSquared()
返回类型:

float

返回从原点到该向量的长度平方。这相当于向量的点积运算。

另请参阅

length() dotProduct()

static normal(v1, v2)#
参数:
返回类型:

QVector3D

返回由向量 v1v2 张成的平面上的单位法向量,这两个向量不能彼此平行。

如果不需要将结果标准化为单位向量,请使用 crossProduct() 来计算 v1v2 的叉积。

static normal(v1, v2, v3)
参数:
返回类型:

QVector3D

返回由向量 v2 - v1v3 - v1 张成的平面上的单位法向量,这两个向量不能彼此平行。

如果不需要将结果标准化为单位向量,请使用 crossProduct() 来计算 v2 - v1v3 - v1 的叉积。

normalize()#

在原地对当前向量进行归一化。如果这个向量是零向量或向量长度非常接近于 1,则不执行任何操作。

另请参阅

length() normalized()

normalized()#
返回类型:

QVector3D

返回此向量的标准化单位向量形式。

如果这个向量是空的,就返回一个空向量。如果向量的长度非常接近于1,那么将返回向量本身。否则,返回长度为1的向量的归一化形式。

另请参阅

length() normalize()

__ne__(v2)#
参数:

v2QVector3D

返回类型:

bool

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

__mul__(factor)#
参数:

factor – float

返回类型:

QVector3D

返回给定 vector 的副本,并将其乘以给定的有限 factor

另请参阅

operator*=()

__mul__(factor)
参数:

factor – float

返回类型:

QVector3D

返回给定 vector 的副本,并将其乘以给定的有限 factor

另请参阅

operator*=()

__mul__(quaternion)
参数:

quaternionQQuaternion

返回类型:

QVector3D

__mul__(matrix)
参数:

matrixQMatrix4x4

返回类型:

QVector3D

注意

此函数已弃用。

__mul__(v2)
参数:

v2QVector3D

返回类型:

QVector3D

返回由将 v1 的每个分量乘以对应的 v2 分量所构成的 QVector3D 对象。

注意

这与 v1v2crossProduct() 不相同。(其分量相加等于 v1v2 的点积。)

另请参阅

crossProduct()

__mul__(matrix)
参数:

matrixQMatrix4x4

返回类型:

QVector3D

注意

此函数已弃用。

__imul__(vector)#
参数:

vectorQVector3D

返回类型:

QVector3D

这是一个重载函数。

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

注意:这与该向量和 crossProduct()crossProduct() 不同。(它的分量之和等于该向量和 vector 的点积。)

另请参阅

crossProduct() operator/=() operator*()

__imul__(factor)
参数:

factor – float

返回类型:

QVector3D

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

另请参阅

operator/=() operator*()

__add__(v2)#
参数:

v2QVector3D

返回类型:

QVector3D

返回一个 QVector3D 对象,该对象是给定向量 v1v2 的和;每个分量单独相加。

另请参阅

operator+=()

__iadd__(vector)#
参数:

vectorQVector3D

返回类型:

QVector3D

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

另请参阅

operator-=()

__sub__()#
返回类型:

QVector3D

这是一个重载函数。

返回一个由改变给定 vector 的每个分量符号所组成的 QVector3D 对象。

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

__sub__(v2)
参数:

v2QVector3D

返回类型:

QVector3D

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

另请参阅

operator-=()

__isub__(vector)#
参数:

vectorQVector3D

返回类型:

QVector3D

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

另请参阅

operator+=()

__div__(divisor)#
参数:

除数QVector3D

返回类型:

QVector3D

返回由给定向量中每个分量的对应分量除以给定
QVector3D

所组成的对象。

divisor 不得有任何分量为零或NaN。

另请参阅

operator/=()

__div__(divisor)
参数:

除数 – float

返回类型:

QVector3D

返回由给定向量中每个分量除以给定的
divisor所组成的QVector3D

divisor 不得为零或NaN。

另请参阅

operator/=()

operator/=(vector)
参数:

vectorQVector3D

返回类型:

QVector3D

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

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

另请参阅

operator*=() operator/()

operator/=(divisor)
参数:

除数 – float

返回类型:

QVector3D

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

另请参阅

operator*=() operator/()

__eq__(v2)#
参数:

v2QVector3D

返回类型:

bool

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

operator(i)#
参数:

i – int

返回类型:

float

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

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

project(modelView, projection, viewport)#
参数:
返回类型:

QVector3D

使用模型视图矩阵 modelView,投影矩阵 projection 和视口尺寸 viewport,返回此矢量在对象/模型坐标中的窗口坐标。

在从裁剪空间转换到归一化空间时,需要对向量的 w 分量进行除法。为了避免当 w 等于 0 时除以 0 的情况,将其设置为 1。

注意

返回的 y 坐标根据 OpenGL 方向排列。OpenGL 假定底部为 0,而 Qt 中顶部为 0。

另请参阅

unproject()

setX(x)#
参数:

x – float

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

另请参阅

x() setY() setZ()

setY(y)#
参数:

y – float

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

另请参阅

y() setX() setZ()

setZ(z)#
参数:

z – float

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

另请参阅

z() setX() setY()

toPoint()#
返回类型:

QPoint

返回此 3D 向量的 QPoint 形式。降维坐标是 z。x 和 y 坐标被四舍五入到最接近的整数。

另请参阅

toPointF() toVector2D()

toPointF()#
返回类型:

QPointF

返回此 3D 向量的 QPointF 形式。降维坐标是 z。

另请参阅

toPoint() toVector2D()

toTuple()#
返回类型:

对象

toVector2D()#
返回类型:

QVector2D

返回此3D向量对应的2D向量形式,忽略z坐标。

另请参阅

toVector4D() toPoint()

toVector4D()#
返回类型:

QVector4D

返回此3D向量的4D形式,w坐标被设置为0。

另请参阅

toVector2D() toPoint()

unproject(modelView, projection, viewport)#
参数:
返回类型:

QVector3D

使用模型视图矩阵 modelView、投影矩阵 projection 和视口维度 viewport 返回此向量在窗口坐标中最初的对象/模型的坐标。

在从裁剪空间转换到归一化空间时,会进行向量组件w的分除。为防止w等于0时分母为0,将其设置为1。

注意

viewport 中y坐标应使用OpenGL方向。OpenGL期望底部为0,而Qt中顶部为0。

另请参阅

project()

x()#
返回类型:

float

返回此点的x坐标。

另请参阅

setX() y() z()

y()#
返回类型:

float

返回此点的y坐标。

另请参阅

setY() x() z()

z()#
返回类型:

float

返回该点的z坐标。

另请参阅

setZ() x() y()