PySide6.QtGui.QQuaternion¶
- class QQuaternion¶
QQuaternion类表示由向量和标量组成的四元数。更多…在版本4.6中添加。
概要¶
方法¶
def
__init__()def
__reduce__()def
__repr__()def
conjugated()def
getAxes()def
getEulerAngles()def
inverted()def
isIdentity()def
isNull()def
length()def
lengthSquared()def
normalize()def
normalized()def
__ne__()def
__mul__()def
__imul__()def
__add__()def
__iadd__()def
__sub__()def
__isub__()def
__div__()def
operator/=()def
__eq__()def
rotatedVector()def
scalar()def
setScalar()def
setVector()def
setX()def
setY()def
setZ()def
toEulerAngles()def
toVector4D()def
vector()def
x()def
y()def
z()
静态函数¶
def
dotProduct()def
fromAxes()def
fromDirection()def
nlerp()def
rotationTo()def
slerp()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
四元数用于表示3D空间中的旋转,由x、y和z坐标指定的3D旋转轴和表示旋转角度的标量组成。
- __init__()¶
构造一个单位四元数 (1, 0, 0, 0),即向量为 (0, 0, 0) 且标量为 1。
- __init__(vector)
- Parameters:
向量 –
QVector4D
从
vector的分量构造一个四元数。- __init__(scalar, vector)
- Parameters:
scalar – 浮点数
向量 –
QVector3D
从指定的
vector和scalar构造一个四元数向量。- __init__(scalar, xpos, ypos, zpos)
- Parameters:
scalar – 浮点数
xpos – 浮点数
ypos – 浮点数
zpos – 浮点数
使用向量(
xpos,ypos,zpos)和scalar构造一个四元数。- __reduce__()¶
- Return type:
字符串
- __repr__()¶
- Return type:
字符串
- conjugated()¶
- Return type:
返回此四元数的共轭,即 (-x, -y, -z, scalar)。
- static dotProduct(q1, q2)¶
- Parameters:
q1 –
QQuaternionq2 –
QQuaternion
- Return type:
浮点数
返回
q1和q2的点积。另请参阅
- static fromAxes(xAxis, yAxis, zAxis)¶
- Parameters:
- Return type:
使用3个轴(
xAxis,yAxis,zAxis)构造四元数。创建一个归一化的四元数,该四元数对应于绕指定的3D
axis旋转angle度。另请参阅
- static fromAxisAndAngle(x, y, z, angle)
- Parameters:
x – 浮点数
y – 浮点数
z – 浮点数
angle – 浮点数
- Return type:
创建一个归一化的四元数,对应于绕3D轴(
x,y,z)旋转angle度。另请参阅
- static fromDirection(direction, up)¶
- Parameters:
- Return type:
使用指定的前向方向
direction和上向方向up构造四元数。如果未指定上向方向或前向和上向向量共线,将生成一个新的正交上向方向。另请参阅
这是一个重载函数。
创建一个对应于
eulerAngles旋转的四元数:围绕z轴旋转eulerAngles.z()度,围绕x轴旋转eulerAngles.x()度,以及围绕y轴旋转eulerAngles.y()度(按此顺序)。另请参阅
- static fromEulerAngles(pitch, yaw, roll)
- Parameters:
pitch – 浮点数
yaw – 浮点数
roll – 浮点数
- Return type:
创建一个四元数,对应于绕z轴旋转
roll度,绕x轴旋转pitch度,以及绕y轴旋转yaw度(按此顺序)。另请参阅
- static fromRotationMatrix(rot3x3)¶
- Parameters:
rot3x3 –
QMatrix3x3- Return type:
创建一个对应于旋转矩阵
rot3x3的四元数。返回定义四元数的3个正交轴(
xAxis,yAxis,zAxis)。这是一个重载函数。
提取一个3D轴
axis和一个旋转角度angle(以度为单位),该角度对应于这个四元数。另请参阅
- getEulerAngles()¶
- Return type:
(float, float, float)
计算与此四元数对应的
roll、pitch和yaw欧拉角(以度为单位)。另请参阅
- inverted()¶
- Return type:
返回此四元数的逆。如果此四元数为空,则返回一个空四元数。
- isIdentity()¶
- Return type:
布尔
如果此四元数的x、y和z分量设置为0.0,且标量分量设置为1.0,则返回
true;否则返回false。- isNull()¶
- Return type:
布尔
如果此四元数的x、y、z和标量分量设置为0.0,则返回
true;否则返回false。- length()¶
- Return type:
浮点数
返回四元数的长度。这也被称为“范数”。
- lengthSquared()¶
- Return type:
浮点数
返回四元数的平方长度。
- static nlerp(q1, q2, t)¶
- Parameters:
q1 –
QQuaternionq2 –
QQuaterniont – 浮点数
- Return type:
沿着旋转位置
q1和q2之间的最短线性路径进行插值。值t应在0和1之间,表示在q1和q2之间行进的距离。结果将被normalized()。如果
t小于或等于 0,则返回q1。如果t大于或等于 1,则返回q2。nlerp() 函数通常比
slerp()更快,并且会给出一些应用中足够好的球面插值近似结果。另请参阅
- normalize()¶
将当前四元数就地归一化。如果这是一个空四元数或四元数的长度非常接近1,则不会发生任何变化。
另请参阅
- normalized()¶
- Return type:
返回此四元数的归一化单位形式。
如果这个四元数为空,则返回一个空四元数。如果四元数的长度非常接近1,则四元数将按原样返回。否则,将返回长度为1的四元数的归一化形式。
- __ne__(q2)¶
- Parameters:
q2 –
QQuaternion- Return type:
布尔
如果
q1不等于q2,则返回true;否则返回false。此运算符使用精确的浮点数比较。- __mul__(q2)¶
- Parameters:
q2 –
QQuaternion- Return type:
使用四元数乘法将
q1和q2相乘。结果对应于应用由q1和q2指定的两个旋转。另请参阅
operator*=()- __mul__(factor)
- Parameters:
factor – 浮点数
- Return type:
返回给定
quaternion的副本,乘以给定的factor。另请参阅
operator*=()- __mul__(factor)
- Parameters:
factor – 浮点数
- Return type:
返回给定
quaternion的副本,乘以给定的factor。另请参阅
operator*=()- __imul__(quaternion)¶
- Parameters:
四元数 –
QQuaternion- Return type:
将此四元数乘以
quaternion并返回对此四元数的引用。- __imul__(factor)
- Parameters:
factor – 浮点数
- Return type:
将此四元数的分量乘以给定的
factor,并返回对此四元数的引用。另请参阅
operator/=()- __add__(q2)¶
- Parameters:
q2 –
QQuaternion- Return type:
返回一个
QQuaternion对象,该对象是给定四元数q1和q2的和;每个分量分别相加。另请参阅
operator+=()- __iadd__(quaternion)¶
- Parameters:
四元数 –
QQuaternion- Return type:
将给定的
quaternion添加到此四元数,并返回对此四元数的引用。另请参阅
operator-=()- __sub__()¶
- Return type:
这是一个重载函数。
返回一个
QQuaternion对象,该对象是通过改变给定quaternion的所有三个分量的符号而形成的。等同于
QQuaternion(0,0,0,0) - quaternion。- __sub__(q2)
- Parameters:
q2 –
QQuaternion- Return type:
返回一个
QQuaternion对象,该对象是通过从q1中减去q2形成的;每个分量分别相减。另请参阅
operator-=()- __isub__(quaternion)¶
- Parameters:
四元数 –
QQuaternion- Return type:
从这个四元数中减去给定的
quaternion,并返回对此四元数的引用。另请参阅
operator+=()- __div__(divisor)¶
- Parameters:
除数 – float
- Return type:
返回通过将给定
quaternion的所有分量除以给定divisor形成的QQuaternion对象。另请参阅
operator/=()- operator/=(divisor)
- Parameters:
除数 – float
- Return type:
将此四元数的分量除以给定的
divisor,并返回对此四元数的引用。另请参阅
operator*=()- __eq__(q2)¶
- Parameters:
q2 –
QQuaternion- Return type:
布尔
如果
q1等于q2,则返回true;否则返回false。此运算符使用精确的浮点数比较。警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
使用此四元数旋转
vector以在3D空间中生成一个新向量。以下代码:result = q.rotatedVector(vector)
等同于以下内容:
result = (q * QQuaternion(0, vector) * q.conjugated()).vector()
- static rotationTo(from, to)¶
- Parameters:
- Return type:
返回从向量
from描述的方向旋转到向量to描述的方向的最短弧四元数。另请参阅
- scalar()¶
- Return type:
浮点数
返回此四元数的标量分量。
另请参阅
- setScalar(scalar)¶
- Parameters:
标量 – 浮点数
将此四元数的标量分量设置为
scalar。将此四元数的向量分量设置为
vector。另请参阅
- setVector(x, y, z)
- Parameters:
x – 浮点数
y – 浮点数
z – 浮点数
将此四元数的向量分量设置为(
x,y,z)。另请参阅
- setX(x)¶
- Parameters:
x – 浮点数
将此四元数的向量的x坐标设置为给定的
x坐标。另请参阅
- setY(y)¶
- Parameters:
y – 浮点数
将此四元数的向量的 y 坐标设置为给定的
y坐标。另请参阅
- setZ(z)¶
- Parameters:
z – 浮点数
将此四元数的向量的z坐标设置为给定的
z坐标。另请参阅
- static slerp(q1, q2, t)¶
- Parameters:
q1 –
QQuaternionq2 –
QQuaterniont – 浮点数
- Return type:
沿着旋转位置
q1和q2之间的最短球面路径进行插值。值t应在0和1之间,表示在q1和q2之间移动的球面距离。如果
t小于或等于 0,则返回q1。如果t大于或等于 1,则返回q2。另请参阅
这是一个重载函数。
计算与此四元数对应的滚转、俯仰和偏航欧拉角(以度为单位)。
另请参阅
- toRotationMatrix()¶
- Return type:
创建一个与此四元数对应的旋转矩阵。
将此四元数作为4D向量返回。
返回此四元数的向量分量。
另请参阅
- x()¶
- Return type:
浮点数
返回此四元数向量的x坐标。
- y()¶
- Return type:
浮点数
返回此四元数向量的 y 坐标。
- z()¶
- Return type:
浮点数
返回此四元数向量的z坐标。