DynamicRigidBody QML 类型

一个可以移动或被移动的物理体。更多...

导入语句import QtQuick3D.Physics
Qt 6.4
继承自

PhysicsBody

属性

方法

详细说明

此类型定义了一个动态刚体:是物理场景的一部分,并像具有质量和速度的物理对象那样行为。

注意:三角形网格高度场平面 几何形状在 isKinematic 设置为 false 时不允许作为碰撞形状。

属性文档

angularAxisLock : AxisLock

此属性锁定身体沿由 DynamicRigidBody.AxisLock 枚举定义的轴的角度速度。要锁定多个轴,只需将它们的枚举值按位或。

可用选项

常量描述
DynamicRigidBody.None无轴锁(默认值)。
DynamicRigidBody.LockX锁定 X 轴。
DynamicRigidBody.LockY锁定 Y 轴。
DynamicRigidBody.LockZ锁定 Z 轴。

centerOfMassPosition : vector3d

定义了质心相对于身体的坐标。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor 时才使用此属性。

另请参阅massModeinertiaTensor


centerOfMassRotation : quaternion

定义质心姿态的旋转,即指定身体的主惯轴相对于身体的定向。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor 时才使用此属性。

另请参阅massModeinertiaTensor


density : float

此属性定义身体的质量密度。当 massMode 设置为 DynamicRigidBody.CustomDensity 时才使用此属性。

默认值是 0.001

范围: (0, inf]

另请参阅massMode


gravityEnabled : bool

此属性定义对象是否将受到重力的作用。


inertiaMatrix : list<float>

定义转动惯量张量矩阵。这是一个列主顺序的 3x3 矩阵。注意,此矩阵预期可以对角化。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaMatrix 时才使用此属性。

另请参阅massModeinertiaTensor


inertiaTensor : vector3d

定义转动惯量张量向量,使用在质量空间坐标中指定的参数。

这是 3x3 对角矩阵的对角向量,如果你有一个非对角世界/演员空间转动惯量张量,则应使用 inertiaMatrix 替代。

转动惯量张量分量必须是正的,任何分量的值为 0 被解释为该轴的无限转动惯量。注意,当 massMode 设置为 DynamicRigidBody.MassAndInertiaTensor 时才使用此属性。

默认值是 (1, 1, 1)。

另请参阅massModeinertiaMatrix


isKinematic : bool

此属性定义对象是否为运动学对象。运动学对象不受外部力的影响,可以看作质量无穷大的对象。如果设置此属性,则在每个模拟帧中,物理对象将移动到其目标位置,即使存在外部力。请注意,要移动和旋转运动学对象,您需要使用kinematicPositionkinematicRotationkinematicEulerRotationkinematicPivot属性。

另请参阅kinematicPositionkinematicRotationkinematicEulerRotationkinematicPivot


kinematicEulerRotation : vector4d [since 6.5]

定义对象在运动学模式下的欧拉旋转,即当isKinematic设置为true时。在每个模拟迭代中,物理对象将根据此值更新。

此属性自Qt 6.5版引入。

另请参阅isKinematickinematicPositionkinematicRotationkinematicPivot


kinematicPivot : vector3d [since 6.5]

定义对象在运动学模式下的旋转轴(旋转中心点),即当isKinematic设置为true时。在每个模拟迭代中,物理对象将根据此值更新。

此属性自Qt 6.5版引入。

另请参阅isKinematickinematicPositionkinematicEulerRotationkinematicRotation


kinematicPosition : vector3d [since 6.5]

用于定义对象在运动学模式下的位置,即在isKinematic设置为true的情况下。在每个模拟迭代中,物理对象将根据此值更新。

此属性自Qt 6.5版引入。

另请参阅isKinematickinematicRotationkinematicEulerRotationkinematicPivot


kinematicRotation : vector3d [since 6.5]

定义对象在运动学模式下的旋转,即在isKinematic设置为true时。在每个模拟迭代中,物理对象将根据此值更新。

此属性自Qt 6.5版引入。

另请参阅isKinematickinematicPositionkinematicEulerRotationkinematicPivot


linearAxisLock : AxisLock

此属性锁定物体沿由DynamicRigidBody轴锁枚举定义的轴的方向上的线速度。要锁定多个轴,只需对其进行按位或运算。

可用选项

常量描述
DynamicRigidBody.None无轴锁(默认值)。
DynamicRigidBody.LockX锁定 X 轴。
DynamicRigidBody.LockY锁定 Y 轴。
DynamicRigidBody.LockZ锁定 Z 轴。

mass : float

该属性定义物体的质量。注意,这仅在massMode不是DynamicRigidBody.CustomDensityDynamicRigidBody.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


applyForce(vector3d force, vector3d position)

在物体上的一个position位置应用一个force


applyImpulse(vector3d impulse, vector3d position)

在物体上的一个position位置应用一个impulse


applyTorque(vector3d torque)

在物体上应用一个torque


applyTorqueImpulse(vector3d impulse)

在物体上应用一个扭矩impulse


reset(vector3d position, vector3d eulerRotation)

重置物体的positioneulerRotation


setAngularVelocity(vector3d angularVelocity)

设置物体的angularVelocity


setLinearVelocity(vector3d linearVelocity)

设置物体的linearVelocity


© 2024 Qt公司有限公司。本文件中包含的文档贡献都属于他们的各自所有者。提供的文档根据免费软件开发基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。GNU自由文档许可协议版本1.3。Qt及其相应的标志为芬兰的Qt公司及其它全球国家和地区的商标。所有其他商标均为各自所有者的财产。