在本页

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 的值被解释为无限质量,并且不允许使用负数。

默认值:1

范围:[0, inf]

另请参阅 massMode

massMode : MassMode

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

可用选项

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

默认值:DynamicRigidBody.DefaultDensity

方法文档

void applyCentralForce(vector3d force)

在身体中央应用force

void applyCentralImpulse(vector3d impulse)

在身体中央应用impulse

void applyForce(vector3d force, vector3d position)

position 上涂抹force

void applyImpulse(vector3d impulse, vector3d position)

position 上应用impulse

void applyTorque(vector3d torque)

在身上涂抹torque

void applyTorqueImpulse(vector3d impulse)

在机身上应用扭矩impulse

void reset(vector3d position, vector3d eulerRotation)

重置人体的positioneulerRotation

void setAngularVelocity(vector3d angularVelocity)

设置angularVelocity

void setLinearVelocity(vector3d linearVelocity)

设置linearVelocity

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