Auf dieser Seite

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:

PhysicsBody

Eigenschaften

Methoden

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:

KonstantBeschreibung
DynamicRigidBody.NoneKeine Achsenfixierung.
DynamicRigidBody.LockXX-Achse sperren.
DynamicRigidBody.LockYY-Achse sperren.
DynamicRigidBody.LockZZ-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:

KonstantBeschreibung
DynamicRigidBody.NoneKeine Achsenfixierung.
DynamicRigidBody.LockXX-Achse sperren.
DynamicRigidBody.LockYY-Achse sperren.
DynamicRigidBody.LockZZ-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:

KonstantBeschreibung
DynamicRigidBody.DefaultDensityVerwenden 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.CustomDensityVerwenden Sie die in „ density “ angegebene Dichte, um Masse und Trägheit unter der Annahme einer gleichmäßigen Dichte zu berechnen.
DynamicRigidBody.MassVerwenden Sie die angegebene Masse, um die Trägheit unter der Annahme einer gleichmäßigen Dichte zu berechnen.
DynamicRigidBody.MassAndInertiaTensorVerwenden Sie den angegebenen Massenwert und den Trägheitstensor.
DynamicRigidBody.MassAndInertiaMatrixVerwenden 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.