PhysicsWorld QML Type
Steuert die Physiksimulation. Mehr...
Import Statement: | import QtQuick3D.Physics |
Since: | Qt 6.4 |
Eigenschaften
- defaultDensity : real
- enableCCD : bool
- forceDebugDraw : bool
- gravity : vector3d
- maximumTimestep : real
- minimumTimestep : real
- numThreads : int
(since 6.7)
- reportKinematicKinematicCollisions : bool
(since 6.7)
- reportStaticKinematicCollisions : bool
(since 6.7)
- running : bool
- scene : Node
- typicalLength : real
- typicalSpeed : real
- viewport : Node
Signale
- frameDone(float timestep)
(since 6.5)
Detaillierte Beschreibung
Der Typ PhysicsWorld steuert die Physiksimulation. Dieser Knoten wird verwendet, um eine Instanz der Physikwelt zu erstellen und ihre Eigenschaften zu definieren. Es kann nur eine Physikwelt geben. Alle Kollisionsknoten in der qml werden automatisch zur Physikwelt hinzugefügt.
Eigenschaft Dokumentation
defaultDensity : real |
Diese Eigenschaft definiert die Standarddichte von dynamischen Objekten, gemessen in Kilogramm pro Kubikeinheit. Dies entspricht dem Gewicht eines Würfels mit der Seite 1
.
Der Standardwert ist 0.001
, was 1 g/cm³ entspricht: die Dichte von Wasser. Wenn Ihre Maßeinheit Meter ist, wäre ein guter Wert 1000
. Beachten Sie, dass nur positive Werte zulässig sind.
Bereich: (0, inf]
enableCCD : bool |
Diese Eigenschaft ermöglicht eine kontinuierliche Kollisionserkennung. Dadurch wird das Risiko verringert, dass Körper mit hohen Geschwindigkeiten durch andere Körper hindurchgehen (auch bekannt als Tunnelbau). Der Standardwert ist false
.
Warnung: Die Verwendung von Triggerkörpern mit aktiviertem CCD wird nicht unterstützt und kann zu fehlenden oder falschen Triggerberichten führen.
forceDebugDraw : bool |
Diese Eigenschaft aktiviert die Debug-Zeichnung aller aktiven Formen in der Physikwelt. Der Standardwert ist false
.
gravity : vector3d |
Diese Eigenschaft definiert den Schwerkraftvektor der physikalischen Welt. Der Standardwert ist (0, -981, 0)
. Setzen Sie den Wert auf Qt.vector3d(0, -9.81, 0)
, wenn Ihre Maßeinheit Meter ist und Sie die Schwerkraft der Erde simulieren.
maximumTimestep : real |
Diese Eigenschaft legt den maximalen Simulationszeitschritt in Millisekunden fest. Der Standardwert ist 33.333
, was 30
Bildern pro Sekunde entspricht.
Bereich: [0, inf]
minimumTimestep : real |
Mit dieser Eigenschaft wird der minimale Simulationszeitschritt in Millisekunden festgelegt. Der Standardwert ist 16.667
, was 60
Bildern pro Sekunde entspricht.
Bereich: [0, maximumTimestep]
numThreads : int |
Mit dieser Eigenschaft wird die Anzahl der für die physikalische Simulation verwendeten Threads festgelegt. So wird der Wertebereich interpretiert:
Wert | Bereich | Beschreibung |
---|---|---|
Negativ | [-inf, -1] | Automatische Thread-Zählung. Die Anwendung wird versuchen, die Anzahl der Threads vom System abzufragen. |
Null | {0} | Kein Threading, die Simulation wird sequentiell ausgeführt. |
Positiv | [1, inf] | Spezifische Thread-Anzahl. |
Der Standardwert ist -1
, d.h. automatische Thread-Anzahl.
Hinweis: Sobald die Szene läuft, ist es nicht mehr möglich, die Anzahl der Threads zu ändern.
Diese Eigenschaft wurde in Qt 6.7 eingeführt.
reportKinematicKinematicCollisions : bool |
Diese Eigenschaft steuert, ob Kollisionen zwischen Paaren von kinematischen dynamischen Starrkörpern einen Kontaktbericht auslösen.
Der Standardwert ist false
.
Hinweis: Sobald die Szene läuft, ist es nicht mehr möglich, diese Einstellung zu ändern.
Diese Eigenschaft wurde in Qt 6.7 eingeführt.
Siehe auch PhysicsWorld::reportStaticKinematicCollisions, DynamicRigidBody, und PhysicsNode::bodyContact.
reportStaticKinematicCollisions : bool |
Diese Eigenschaft steuert, ob Kollisionen zwischen einem statischen Starrkörper und einem kinematischen dynamischen Starrkörper einen Kontaktbericht auslösen.
Der Standardwert ist false
.
Hinweis: Sobald die Szene läuft, ist es nicht mehr möglich, diese Einstellung zu ändern.
Diese Eigenschaft wurde in Qt 6.7 eingeführt.
Siehe auch PhysicsWorld::reportKinematicKinematicCollisions, StaticRigidBody, DynamicRigidBody, und PhysicsNode::bodyContact.
running : bool |
Diese Eigenschaft startet oder stoppt die physikalische Simulation. Der Standardwert ist true
.
scene : Node |
Diese Eigenschaft definiert den obersten Knoten, der alle Knoten der physikalischen Simulation enthält. Alle physikalischen Objekte, die ein Vorfahre dieses Knotens sind, werden als Teil dieses PhysicsWorld gesehen.
Hinweis: Die Verwendung desselben Szeneknotens für mehrere PhysicsWorld wird nicht unterstützt.
typicalLength : real |
Diese Eigenschaft definiert die ungefähre Größe der Objekte in der Simulation. Dies wird verwendet, um bestimmte längenbezogene Toleranzen abzuschätzen. Objekte, die viel kleiner oder viel größer als diese Größe sind, verhalten sich möglicherweise nicht korrekt. Der Standardwert ist 100
.
Bereich: [0, inf]
typicalSpeed : real |
Diese Eigenschaft definiert die typische Größe der Geschwindigkeiten von Objekten in der Simulation. Sie wird verwendet, um abzuschätzen, ob ein Kontakt auf der Grundlage seiner Aufprallgeschwindigkeit als Aufprall oder als ruhend behandelt werden sollte, und um einen Schwellenwert für die kinetische Energie festzulegen, unterhalb dessen die Simulation Objekte in den Schlaf versetzen kann.
Für normale physikalische Umgebungen ist eine gute Wahl die ungefähre Geschwindigkeit eines Objekts, das eine Sekunde lang unter der Schwerkraft fällt. Der Standardwert ist 1000
.
Bereich: [0, inf]
viewport : Node |
Diese Eigenschaft definiert das Ansichtsfenster, in dem Debug-Komponenten gezeichnet werden, wenn forceDebugDraw aktiviert ist. Wenn sie nicht gesetzt ist, wird der scene Knoten verwendet.
Siehe auch forceDebugDraw und scene.
Signal-Dokumentation
|
Dieses Signal wird ausgegeben, wenn die physikalische Simulation mit der Simulation eines Rahmens abgeschlossen ist. Der Parameter timestep gibt an, wie lange in Millisekunden der Zeitschritt in der Simulation war.
Hinweis: Der entsprechende Handler ist onFrameDone
.
Dieses Signal wurde in Qt 6.5 eingeführt.
© 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.