DynamicRigidBody QML Type

可以移动或被移动的实体。更多

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4
Inherits:

PhysicsBody

属性

方法

详细说明

该类型定义了动态刚体:作为物理场景一部分的对象,其行为类似于具有质量和速度的物理对象。

注: triangle meshheight fieldplane 几何形状在isKinematicfalse 时不允许用作碰撞形状。

属性文档

angularAxisLock : AxisLock

该属性可锁定物体沿DynamicRigidBody.AxisLock 枚举定义的轴的角速度。要锁定多个轴,只需用比特位或枚举值即可。

可用选项

常量说明
DynamicRigidBody.None无轴锁定。
DynamicRigidBody.LockX锁定 X 轴。
DynamicRigidBody.LockY锁定 Y 轴
DynamicRigidBody.LockZ锁定 Z 轴

默认值:DynamicRigidBody.None


centerOfMassPosition : vector3d

定义质心相对于主体的位置。请注意,只有当massMode 设置为DynamicRigidBody.MassAndInertiaTensor 时才会使用。

默认值:(0, 0, 0)

另请参阅 massModeinertiaTensor


centerOfMassRotation : quaternion

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

默认值:(1, 0, 0, 0)

另请参阅 massModeinertiaTensor


density : real

该属性定义了机构的密度。只有当massMode 设置为DynamicRigidBody.CustomDensity 时才会使用。

默认值:0.001

范围:(0, inf]

另请参阅 massMode


gravityEnabled : bool

该属性定义物体是否受重力影响。

默认值true


inertiaMatrix : list<real>

定义惯性张量矩阵。这是一个 3x3 矩阵,按列-主序排列。请注意,该矩阵应可对角。请注意,只有当massMode 设置为DynamicRigidBody.MassAndInertiaMatrix 时才会使用。

默认值:一个 3x3 身份矩阵

另请参见 massModeinertiaTensor


inertiaTensor : vector3d

使用质量空间坐标中指定的参数定义惯性张量向量。

这是一个 3x3 对角矩阵的对角线向量,如果使用的是非对角世界/因子空间惯性张量,则应使用inertiaMatrix

惯性张量的分量必须为正值,任何分量的值为 0 都会被解释为沿该轴的惯性为无限大。请注意,只有当massMode 设置为DynamicRigidBody.MassAndInertiaTensor 时才会使用。

默认值:(1, 1, 1)

另请参阅 massModeinertiaMatrix


isKinematic : bool

该属性定义对象是否为运动对象。运动物体不受外力影响,可视为质量无限大的物体。如果设置了该属性,那么在每个模拟帧中,物理对象都将移动到目标位置,不受外力影响。请注意,要移动和旋转运动物体,需要使用kinematicPosition,kinematicRotation,kinematicEulerRotationkinematicPivot 属性。

默认值:false

另请参阅 kinematicPosition,kinematicRotation,kinematicEulerRotation, 和kinematicPivot


isSleeping : bool [since 6.9]

如果身体处于睡眠状态,则设置为true 。虽然在技术上可以设置该属性,但应将其视为只读属性,在物理模拟运行的每一帧中都会设置。

此属性在 Qt 6.9 中引入。


kinematicEulerRotation : vector3d [since 6.5]

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

默认值:(0, 0, 0)

此属性在 Qt 6.5 中引入。

另请参阅 isKinematic,kinematicPosition, kinematicEulerRotation 和kinematicPivot


kinematicPivot : vector3d [since 6.5]

定义对象运动时的枢轴,即isKinematic 设置为true 时。在模拟的每次迭代中,物理对象都将根据此值进行更新。

默认值:(0, 0, 0)

此属性在 Qt 6.5 中引入。

另请参阅 isKinematic,kinematicPosition,kinematicEulerRotation, 和kinematicRotation


kinematicPosition : vector3d [since 6.5]

定义对象运动时的位置,即isKinematic 设置为true 时的位置。在模拟的每次迭代中,物理对象都将根据该值进行更新。

默认值:(0, 0, 0)

此属性在 Qt 6.5 中引入。

另请参阅 isKinematic,kinematicRotation,kinematicEulerRotation, 和kinematicPivot


kinematicRotation : quaternion [since 6.5]

定义对象运动时的旋转,即isKinematic 设置为true 时。在模拟的每次迭代中,物理对象都将根据该值进行更新。

默认值:(1, 0, 0, 0)

此属性在 Qt 6.5 中引入。

另请参阅 isKinematic,kinematicPosition,kinematicEulerRotation, 和kinematicPivot


linearAxisLock : AxisLock

该属性锁定了物体沿DynamicRigidBody.AxisLock 枚举定义的轴的线速度。要锁定多个轴,只需将它们的枚举值按位或。

可用选项

常量说明
DynamicRigidBody.None无轴锁定。
DynamicRigidBody.LockX锁定 X 轴。
DynamicRigidBody.LockY锁定 Y 轴
DynamicRigidBody.LockZ锁定 Z 轴

默认值:DynamicRigidBody.None


mass : real

该属性定义了机构的质量。请注意,只有在massMode 不是DynamicRigidBody.CustomDensityDynamicRigidBody.DefaultDensity 的情况下才会使用。还请注意,0 的值会被解释为无限质量,并且不允许使用负数。

默认值:0:1

范围:[0, inf]

另请参见 massMode


massMode : MassMode

该属性包含一个枚举,用于描述如何计算该物体的质量和惯性。

可用选项

常数说明
DynamicRigidBody.DefaultDensity使用PhysicsWorlddefaultDensity 属性指定的密度计算质量和惯性(假设密度均匀)。
DynamicRigidBody.CustomDensity使用density 中指定的密度计算质量和惯性(假设密度均匀)。
DynamicRigidBody.Mass假设密度均匀,使用指定质量计算惯性。
DynamicRigidBody.MassAndInertiaTensor使用指定质量值和惯性张量。
DynamicRigidBody.MassAndInertiaMatrix使用指定的质量值并根据指定的惯性矩阵计算惯性。

默认值:DynamicRigidBody.DefaultDensity


方法文档

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


© 2025 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.