Verwendung des Qt Quick Partikelsystems

Die Dokumentation für alle Typen des Partikelsystems finden Sie auf der Seite des Moduls QtQuick.Particles.

Um die Typen aus dem Partikelmodul zu verwenden, importieren Sie das Modul mit der folgenden Zeile:

import QtQuick.Particles

Das ParticleSystem

Dieses Partikelsystem enthält vier Haupttypen von QML-Typen: ParticleSystem, Painters, Emitter und Affectors.

Der Typ ParticleSystem verbindet alle anderen Typen miteinander und verwaltet die gemeinsame Zeitleiste. Painters, Emitter und Affectors müssen alle denselben ParticleSystem haben, um miteinander interagieren zu können.

Sie können so viele ParticleSystems haben, wie Sie wollen, wenn Sie diese Einschränkung beachten. Die logische Trennung ist also, ein ParticleSystem für alle Typen zu haben, die miteinander interagieren sollen, oder nur eines, wenn die Anzahl der Typen klein ist und sie leicht unter Kontrolle gehalten werden können.

Logische Partikel

Alle Typen des Partikelsystems wirken auf "logische Partikel". Jeder Partikel hat eine logische Repräsentation innerhalb des Partikelsystems, und auf diese wirken die Typen. Nicht jedes logische Partikel muss visualisiert werden, und einige logische Partikel können dazu führen, dass mehrere visuelle Partikel auf dem Bildschirm gezeichnet werden.

Partikel-Gruppen

Jedes logische Partikel ist ein Mitglied einer Partikelgruppe, und jede Gruppe wird durch einen Namen identifiziert. Wenn keine andere Gruppe angegeben wurde, gehört ein logisches Partikel zu der Gruppe mit dem Namen "" (die leere Zeichenkette), die sich genauso verhält wie jede andere Gruppe. Gruppen werden für zwei Zwecke verwendet: zur Steuerung von Partikeln und weil sie stochastische Zustandsübergänge haben können.

Gruppen kontrollieren Partikel, da man mit keinem der Partikelsystemtypen auf ein einzelnes Partikel zugreifen kann. Alle Typen wirken auf Gruppen als Ganzes, und daher müssen alle Partikel, die sich unterschiedlich verhalten sollen (abgesehen von der üblichen stochastischen Parametervariation), in verschiedenen Gruppen sein.

Partikel können auch dynamisch die Gruppe wechseln. Wenn dies geschieht, bleibt die Flugbahn der Partikel unverändert, aber sie kann von verschiedenen ParticlePaintern oder Affectors beeinflusst werden. Partikel können entweder ihre Gruppe durch einen Affector ändern, oder es können stochastische Zustandsübergänge in einem ParticleGroup Typ definiert werden.

Im Allgemeinen sollten Gruppen nur dann in einem ParticleGroup definiert werden, wenn sie stochastische Zustandsübergänge erfordern. Andernfalls ist es ausreichend, wenn die Gruppen einfach durch die in den Partikel-/Partikeleigenschaften der Typen verwendeten Strings definiert werden.

Emitter

Emitter emittieren logische Partikel in das System. Diese Partikel haben eine Flugbahn und eine Lebensdauer, aber keine Visualisierung. Diese Partikel werden vom Standort des Emitters emittiert.

TrailEmitter sind eine spezielle Art von Emittern, die Partikel von der Position anderer logischer Partikel emittieren. Jedes logische Partikel des verfolgten Typs innerhalb der Grenzen eines TrailEmitter wird von seinem Standort aus Partikel emittieren, so als ob ein Emitter mit den gleichen Eigenschaften wie der TrailEmitter auf ihm wäre.

ParticlePainter

Painter sind die Typen, die logische Partikel visualisieren. Für jedes logische Partikel in den ihm zugewiesenen Gruppen, die sich innerhalb seiner Grenzen befinden (oder außerhalb, wenn Sie die Clip-Eigenschaft des Typs nicht festlegen), wird es auf eine Art und Weise visualisiert, die vom Typ ParticlePainter abhängt. Der Basistyp ParticlePainter zeichnet nichts. ImageParticle rendert ein Bild am Ort des Partikels. ItemParticle ermöglicht es Ihnen, logische Partikel mit beliebigen QML-Delegaten zu visualisieren. ModelParticle ist ähnlich, koordiniert aber die Modelldaten unter den Delegierten in einer ähnlichen Weise wie die View-Klassen.

Da ParticlePainter der QML-Typ ist, der die Partikel in der Szene visualisiert, ist es sein Z-Wert, der wichtig ist, wenn man versucht, Partikel über oder unter anderen Typen visuell zu platzieren.

Affektoren

Affektoren sind eine optionale Komponente eines Partikelsystems. Sie können eine Vielzahl von Manipulationen an der Simulation vornehmen, wie z.B. die Veränderung der Flugbahn von Partikeln oder das vorzeitige Beenden ihres Lebens in der Simulation. Aus Leistungsgründen wird empfohlen, Affectors nicht in Partikelsystemen mit hohem Volumen zu verwenden.

Stochastische Parameter

Da Partikelsysteme von der stochastischen Kontrolle von Parametern über eine große Anzahl von Instanzen profitieren, werden mehrere stochastische Hilfstypen vom Partikelsystem verwendet. Wenn du keine stochastische Variation in diesen Parametern haben möchtest, dann gib keine Variation in diesen Typen an.

Richtungen

Richtungen können durch Winkel und Betrag oder durch x- und y-Komponenten angegeben werden. Während mit beiden Methoden jede Richtung angegeben werden kann, gibt es einen wesentlichen Unterschied zwischen der Variation der x- und y-Komponenten und der Variation von Winkel und Betrag. Das Variieren der x- und y-Komponenten führt zu einem rechteckigen Bereich um den angegebenen Punkt, während das Variieren des Winkels zu einem Bogen führt, der um den angegebenen Punkt zentriert ist.

Formen

Das Partikelsystem enthält mehrere Typen, die Formen darstellen. Diese Typen stellen keine Formen dar, sondern dienen dazu, einen zufälligen Punkt innerhalb der Form auszuwählen. Wenn Sie einen bestimmten Punkt ohne Zufälligkeit wünschen, verwenden Sie eine Form mit 0 Breite und 0 Höhe (dies ist die Standardeinstellung). Andernfalls können Sie mit den Formtypen einen Bereich angeben, so dass das Ergebnis einen zufällig ausgewählten Punkt aus diesem Bereich verwenden kann.

Siehe auch Qt Quick Particles Beispiele - Emitter, Beispiele Affectors, Beispiele Image Particles und Beispiel Affectors - System.

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