DynamicRigidBody QML 类型
一个可以移动或被移动的物理体。更多...
导入语句 | import QtQuick3D.Physics |
自 | Qt 6.4 |
继承自 |
属性
- angularAxisLock : AxisLock
- centerOfMassPosition : vector3d
- centerOfMassRotation : quaternion
- density : float
- gravityEnabled : bool
- inertiaMatrix : list<float>
- inertiaTensor : vector3d
- isKinematic : bool
- kinematicEulerRotation : vector4d
(since 6.5)
- kinematicPivot : vector3d
(since 6.5)
- kinematicPosition : vector3d
(since 6.5)
- kinematicRotation : vector3d
(since 6.5)
- linearAxisLock : AxisLock
- mass : float
- massMode : MassMode
方法
- applyCentralForce(vector3d force)
- applyCentralImpulse(vector3d impulse)
- applyForce(vector3d force, vector3d position)
- applyImpulse(vector3d impulse, vector3d position)
- applyTorque(vector3d torque)
- applyTorqueImpulse(vector3d impulse)
- reset(vector3d position, vector3d eulerRotation)
- setAngularVelocity(vector3d angularVelocity)
- setLinearVelocity(vector3d linearVelocity)
详细说明
此类型定义了一个动态刚体:是物理场景的一部分,并像具有质量和速度的物理对象那样行为。
注意:三角形网格、高度场 和 平面 几何形状在 isKinematic 设置为 false
时不允许作为碰撞形状。
属性文档
angularAxisLock : AxisLock |
此属性锁定身体沿由 DynamicRigidBody.AxisLock 枚举定义的轴的角度速度。要锁定多个轴,只需将它们的枚举值按位或。
可用选项
常量 | 描述 |
---|---|
DynamicRigidBody.None | 无轴锁(默认值)。 |
DynamicRigidBody.LockX | 锁定 X 轴。 |
DynamicRigidBody.LockY | 锁定 Y 轴。 |
DynamicRigidBody.LockZ | 锁定 Z 轴。 |
centerOfMassPosition : vector3d |
定义了质心相对于身体的坐标。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor
时才使用此属性。
另请参阅massMode 和 inertiaTensor。
centerOfMassRotation : quaternion |
定义质心姿态的旋转,即指定身体的主惯轴相对于身体的定向。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor
时才使用此属性。
另请参阅massMode 和 inertiaTensor。
density : float |
gravityEnabled : bool |
此属性定义对象是否将受到重力的作用。
inertiaMatrix : list<float> |
定义转动惯量张量矩阵。这是一个列主顺序的 3x3 矩阵。注意,此矩阵预期可以对角化。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaMatrix
时才使用此属性。
另请参阅massMode 和 inertiaTensor。
inertiaTensor : vector3d |
定义转动惯量张量向量,使用在质量空间坐标中指定的参数。
这是 3x3 对角矩阵的对角向量,如果你有一个非对角世界/演员空间转动惯量张量,则应使用 inertiaMatrix 替代。
转动惯量张量分量必须是正的,任何分量的值为 0 被解释为该轴的无限转动惯量。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor
时才使用此属性。
默认值是 (1, 1, 1)。
另请参阅massMode 和 inertiaMatrix。
isKinematic : bool |
此属性定义对象是否为运动学对象。运动学对象不受外部力的影响,可以看作质量无穷大的对象。如果设置此属性,则在每个模拟帧中,物理对象将移动到其目标位置,即使存在外部力。请注意,要移动和旋转运动学对象,您需要使用kinematicPosition、kinematicRotation、kinematicEulerRotation和kinematicPivot属性。
另请参阅kinematicPosition、kinematicRotation、kinematicEulerRotation和kinematicPivot。
kinematicEulerRotation : vector4d |
定义对象在运动学模式下的欧拉旋转,即当isKinematic设置为true
时。在每个模拟迭代中,物理对象将根据此值更新。
此属性自Qt 6.5版引入。
另请参阅isKinematic、kinematicPosition、kinematicRotation和kinematicPivot。
kinematicPivot : vector3d |
定义对象在运动学模式下的旋转轴(旋转中心点),即当isKinematic设置为true
时。在每个模拟迭代中,物理对象将根据此值更新。
此属性自Qt 6.5版引入。
另请参阅isKinematic、kinematicPosition、kinematicEulerRotation和kinematicRotation。
kinematicPosition : vector3d |
用于定义对象在运动学模式下的位置,即在isKinematic设置为true
的情况下。在每个模拟迭代中,物理对象将根据此值更新。
此属性自Qt 6.5版引入。
另请参阅isKinematic、kinematicRotation、kinematicEulerRotation和kinematicPivot。
kinematicRotation : vector3d |
定义对象在运动学模式下的旋转,即在isKinematic设置为true
时。在每个模拟迭代中,物理对象将根据此值更新。
此属性自Qt 6.5版引入。
另请参阅isKinematic、kinematicPosition、kinematicEulerRotation和kinematicPivot。
linearAxisLock : AxisLock |
此属性锁定物体沿由DynamicRigidBody轴锁枚举定义的轴的方向上的线速度。要锁定多个轴,只需对其进行按位或运算。
可用选项
常量 | 描述 |
---|---|
DynamicRigidBody.None | 无轴锁(默认值)。 |
DynamicRigidBody.LockX | 锁定 X 轴。 |
DynamicRigidBody.LockY | 锁定 Y 轴。 |
DynamicRigidBody.LockZ | 锁定 Z 轴。 |
mass : float |
该属性定义物体的质量。注意,这仅在massMode不是DynamicRigidBody.CustomDensity或DynamicRigidBody.DefaultDensity时使用。另外,请注意,0值被视为无限质量,并且禁止使用负数。
默认值为1
。
范围:[0, ∞]
另请参阅massMode。
massMode : MassMode |
该属性保存一个枚举,用于描述此身体的质心和惯性是如何计算的。
默认情况下,使用DynamicRigidBody.DefaultDensity
。
可用选项
常量 | 描述 |
---|---|
DynamicRigidBody.DefaultDensity | 使用在defaultDensity属性中指定的密度来计算质量以及惯性,假设其为均匀密度。 |
DynamicRigidBody.CustomDensity | 使用在density属性中指定的密度来计算质量以及惯性,假设其为均匀密度。 |
DynamicRigidBody.Mass | 使用在mass属性中指定的质量来计算惯性,假设其为均匀密度。 |
DynamicRigidBody.MassAndInertiaTensor | 使用指定的质量值和惯性张量。 |
DynamicRigidBody.MassAndInertiaMatrix | 使用指定的质量值,并从指定的惯性矩阵中计算惯性。 |
方法文档
applyCentralForce(vector3d force) |
将一个force作用在物体的中心。
applyCentralImpulse(vector3d impulse) |
在物体的中心应用一个impulse。
applyTorque(vector3d torque) |
在物体上应用一个torque。
applyTorqueImpulse(vector3d impulse) |
在物体上应用一个扭矩impulse。
setAngularVelocity(vector3d angularVelocity) |
设置物体的angularVelocity。
setLinearVelocity(vector3d linearVelocity) |
设置物体的linearVelocity。
© 2024 Qt公司有限公司。本文件中包含的文档贡献都属于他们的各自所有者。提供的文档根据免费软件开发基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。GNU自由文档许可协议版本1.3。Qt及其相应的标志为芬兰的Qt公司及其它全球国家和地区的商标。所有其他商标均为各自所有者的财产。