DynamicRigidBody QML Type
Ein physikalischer Körper, der sich bewegen kann oder bewegt werden kann. Mehr...
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
| Inherits: |
Eigenschaften
- angularAxisLock : AxisLock
- centerOfMassPosition : vector3d
- centerOfMassRotation : quaternion
- density : real
- gravityEnabled : bool
- inertiaMatrix : list<real>
- inertiaTensor : vector3d
- isKinematic : bool
- isSleeping : bool
(since 6.9) - kinematicEulerRotation : vector3d
(since 6.5) - kinematicPivot : vector3d
(since 6.5) - kinematicPosition : vector3d
(since 6.5) - kinematicRotation : quaternion
(since 6.5) - linearAxisLock : AxisLock
- mass : real
- massMode : MassMode
Methoden
- void applyCentralForce(vector3d force)
- void applyCentralImpulse(vector3d impulse)
- void applyForce(vector3d force, vector3d position)
- void applyImpulse(vector3d impulse, vector3d position)
- void applyTorque(vector3d torque)
- void applyTorqueImpulse(vector3d impulse)
- void reset(vector3d position, vector3d eulerRotation)
- void setAngularVelocity(vector3d angularVelocity)
- void setLinearVelocity(vector3d linearVelocity)
Ausführliche Beschreibung
Dieser Typ definiert einen dynamischen starren Körper: ein Objekt, das Teil der Physikszene ist und sich wie ein physikalisches Objekt mit Masse und Geschwindigkeit verhält.
Hinweis: Die Geometrieformen„ triangle mesh“ , „ height field “ und „ plane “ sind nicht als Kollisionsformen zulässig, wenn „ isKinematic “ auf „ false “ gesetzt ist.
Dokumentation zu den Eigenschaften
angularAxisLock : AxisLock
Diese Eigenschaft sperrt die Winkelgeschwindigkeit des Körpers entlang der Achsen, die durch die Enumeration „ DynamicRigidBody.AxisLock“ definiert sind. Um mehrere Achsen zu sperren, führen Sie einfach eine bitweise ODER-Verknüpfung ihrer Enumerationswerte durch.
Verfügbare Optionen:
| Konstant | Beschreibung |
|---|---|
DynamicRigidBody.None | Keine Achsenfixierung. |
DynamicRigidBody.LockX | X-Achse sperren. |
DynamicRigidBody.LockY | Y-Achse sperren. |
DynamicRigidBody.LockZ | Z-Achse sperren. |
Standardwert: DynamicRigidBody.None
centerOfMassPosition : vector3d
Legt die Position des Massenschwerpunkts relativ zum Körper fest. Beachten Sie, dass dies nur verwendet wird, wenn „ massMode “ auf „ DynamicRigidBody.MassAndInertiaTensor “ gesetzt ist.
Standardwert: (0, 0, 0)
Siehe auch „ massMode “ und „ inertiaTensor “.
centerOfMassRotation : quaternion
Definiert die Drehung der Lage des Massenschwerpunkts, d. h., sie legt die Ausrichtung der Hauptträgheitsachsen des Körpers relativ zum Körper fest. Beachten Sie, dass dies nur verwendet wird, wenn „ massMode “ auf „ DynamicRigidBody.MassAndInertiaTensor “ gesetzt ist.
Standardwert: (1, 0, 0, 0)
Siehe auch „ massMode “ und „ inertiaTensor “.
density : real
Diese Eigenschaft legt die Dichte des Körpers fest. Sie wird nur verwendet, wenn „ massMode “ auf „ DynamicRigidBody.CustomDensity “ gesetzt ist.
Standardwert: 0.001
Bereich: (0, inf]
Siehe auch „ massMode “.
gravityEnabled : bool
Diese Eigenschaft legt fest, ob das Objekt der Schwerkraft unterliegt oder nicht.
Standardwert: true
inertiaMatrix : list<real>
Definiert die Trägheitstensor-Matrix. Dabei handelt es sich um eine 3×3-Matrix in spaltenorientierter Reihenfolge. Beachten Sie, dass diese Matrix diagonaliserbar sein sollte. Beachten Sie außerdem, dass dies nur verwendet wird, wenn „ massMode “ auf „ DynamicRigidBody.MassAndInertiaMatrix “ gesetzt ist.
Standardwert: Eine 3×3-Einheitsmatrix
Siehe auch „ massMode “ und „ inertiaTensor “.
inertiaTensor : vector3d
Definiert den Trägheitstensortensorvektor unter Verwendung eines in Massenraumkoordinaten angegebenen Parameters.
Dies ist der Diagonalvektor einer 3x3-Diagonalmatrix. Wenn Sie einen nicht-diagonalen Trägheitstensor im Welt- oder Akteurraum haben, sollten Sie stattdessen inertiaMatrix verwenden.
Die Komponenten des Trägheitstensors müssen positiv sein; ein Wert von 0 in einer Komponente wird als unendliche Trägheit entlang dieser Achse interpretiert. Beachten Sie, dass dies nur verwendet wird, wenn „ massMode “ auf „ DynamicRigidBody.MassAndInertiaTensor “ gesetzt ist.
Standardwert: (1, 1, 1)
Siehe auch „ massMode “ und „ inertiaMatrix “.
isKinematic : bool
Diese Eigenschaft legt fest, ob das Objekt kinematisch ist oder nicht. Ein kinematisches Objekt wird nicht von äußeren Kräften beeinflusst und kann als Objekt mit unendlicher Masse betrachtet werden. Ist diese Eigenschaft aktiviert, wird das physikalische Objekt in jedem Simulationsframe unabhängig von äußeren Kräften an seine Zielposition bewegt. Beachten Sie, dass Sie zum Verschieben und Drehen des kinematischen Objekts die Eigenschaften „ kinematicPosition “, „ kinematicRotation “, „ kinematicEulerRotation “ und „ kinematicPivot “ verwenden müssen.
Standardwert: false
Siehe auch „ kinematicPosition“ , „ kinematicRotation “, „ kinematicEulerRotation “ und „ kinematicPivot “.
isSleeping : bool [since 6.9]
Wird auf „ true “ gesetzt, wenn der Körper schläft. Obwohl es technisch möglich ist, diese Eigenschaft zu setzen, sollte sie als schreibgeschützte Eigenschaft betrachtet werden, die bei jedem Frame, in dem die Physiksimulation läuft, gesetzt wird.
Diese Eigenschaft wurde in Qt 6.9 eingeführt.
kinematicEulerRotation : vector3d [since 6.5]
Definiert die Euler-Rotation des Objekts, wenn es kinematisch ist, d. h. wenn „ isKinematic “ auf „ true “ gesetzt ist. Bei jeder Iteration der Simulation wird das physikalische Objekt entsprechend diesem Wert aktualisiert.
Standardwert: (0, 0, 0)
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch „ isKinematic“ , „ kinematicPosition “, „kinematicEulerRotation“ und „ kinematicPivot “.
kinematicPivot : vector3d [since 6.5]
Legt den Drehpunkt des Objekts fest, wenn es kinematisch ist, d. h. wenn „ isKinematic “ auf „ true “ gesetzt ist. Bei jeder Iteration der Simulation wird das physikalische Objekt entsprechend diesem Wert aktualisiert.
Standardwert: (0, 0, 0)
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch „ isKinematic“ , „ kinematicPosition “, „ kinematicEulerRotation “ und „ kinematicRotation “.
kinematicPosition : vector3d [since 6.5]
Legt die Position des Objekts fest, wenn es kinematisch ist, d. h. wenn „ isKinematic “ auf „ true “ gesetzt ist. Bei jeder Iteration der Simulation wird das physikalische Objekt entsprechend diesem Wert aktualisiert.
Standardwert: (0, 0, 0)
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch „ isKinematic“ , „ kinematicRotation “, „ kinematicEulerRotation “ und „ kinematicPivot “.
kinematicRotation : quaternion [since 6.5]
Legt die Drehung des Objekts fest, wenn es kinematisch ist, d. h. wenn „ isKinematic “ auf „ true “ gesetzt ist. Bei jeder Iteration der Simulation wird das physikalische Objekt entsprechend diesem Wert aktualisiert.
Standardwert: (1, 0, 0, 0)
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch „ isKinematic“ , „ kinematicPosition “, „ kinematicEulerRotation “ und „ kinematicPivot “.
linearAxisLock : AxisLock
Diese Eigenschaft sperrt die lineare Geschwindigkeit des Körpers entlang der Achsen, die durch die Enumeration „ DynamicRigidBody.AxisLock“ definiert sind. Um mehrere Achsen zu sperren, verknüpfen Sie einfach deren Enumerationswerte bitweise mit „OR“.
Verfügbare Optionen:
| Konstant | Beschreibung |
|---|---|
DynamicRigidBody.None | Keine Achsenfixierung. |
DynamicRigidBody.LockX | X-Achse sperren. |
DynamicRigidBody.LockY | Y-Achse sperren. |
DynamicRigidBody.LockZ | Z-Achse sperren. |
Standardwert: DynamicRigidBody.None
mass : real
Diese Eigenschaft definiert die Masse des Körpers. Beachten Sie, dass diese nur verwendet wird, wenn „ massMode “ nicht auf „ DynamicRigidBody.CustomDensity “ oder „ DynamicRigidBody.DefaultDensity “ gesetzt ist. Beachten Sie außerdem, dass der Wert 0 als unendliche Masse interpretiert wird und dass negative Zahlen nicht zulässig sind.
Standardwert: 1
Bereich: [0, inf]
Siehe auch „ massMode “.
massMode : MassMode
Diese Eigenschaft enthält die Enumeration, die beschreibt, wie Masse und Trägheit für diesen Körper berechnet werden.
Verfügbare Optionen:
| Konstant | Beschreibung |
|---|---|
DynamicRigidBody.DefaultDensity | Verwenden Sie die in der Eigenschaft „ defaultDensity “ unter „ PhysicsWorld “ angegebene Dichte, um Masse und Trägheit unter der Annahme einer gleichmäßigen Dichte zu berechnen. |
DynamicRigidBody.CustomDensity | Verwenden Sie die in „ density “ angegebene Dichte, um Masse und Trägheit unter der Annahme einer gleichmäßigen Dichte zu berechnen. |
DynamicRigidBody.Mass | Verwenden Sie die angegebene Masse, um die Trägheit unter der Annahme einer gleichmäßigen Dichte zu berechnen. |
DynamicRigidBody.MassAndInertiaTensor | Verwenden Sie den angegebenen Massenwert und den Trägheitstensor. |
DynamicRigidBody.MassAndInertiaMatrix | Verwenden Sie den angegebenen Massenwert und berechnen Sie die Trägheit anhand der angegebenen Trägheitsmatrix. |
Standardwert: DynamicRigidBody.DefaultDensity
Methodendokumentation
void applyCentralForce(vector3d force)
Wendet einen „ force “ auf die Körpermitte an.
void applyCentralImpulse(vector3d impulse)
Wendet einen „ impulse “ auf die Körpermitte an.
void applyForce(vector3d force, vector3d position)
Wendet einen „ force “ an einer „ position “ am Körper an.
void applyImpulse(vector3d impulse, vector3d position)
Wendet einen „ impulse “ mit dem „ position “ auf den Körper an.
void applyTorque(vector3d torque)
Wendet einen „ torque “ auf den Körper an.
void applyTorqueImpulse(vector3d impulse)
Übt ein Drehmoment impulse auf den Körper aus.
void reset(vector3d position, vector3d eulerRotation)
Setzt die Werte von „ position “ und „ eulerRotation “ des Körpers zurück.
void setAngularVelocity(vector3d angularVelocity)
Legt die „ angularVelocity “ des Textkörpers fest.
void setLinearVelocity(vector3d linearVelocity)
Legt den „ linearVelocity “ des Body fest.
© 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.