QGraphicsRotation Class
Die Klasse „QGraphicsRotation“ ermöglicht eine Drehtransformation um eine bestimmte Achse. Mehr...
| Header: | #include <QGraphicsRotation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Erbt von: | QGraphicsTransform |
Eigenschaften
Öffentliche Funktionen
| QGraphicsRotation(QObject *parent = nullptr) | |
| virtual | ~QGraphicsRotation() |
| qreal | angle() const |
| QVector3D | axis() const |
| QVector3D | origin() const |
| void | setAngle(qreal) |
| void | setAxis(const QVector3D &axis) |
| void | setAxis(Qt::Axis axis) |
| void | setOrigin(const QVector3D &point) |
Neu implementierte öffentliche Funktionen
| virtual void | applyTo(QMatrix4x4 *matrix) const override |
Signale
| void | angleChanged() |
| void | axisChanged() |
| void | originChanged() |
Detaillierte Beschreibung
Sie können die gewünschte Achse angeben, indem Sie der Eigenschaft `axis` einen ` QVector3D ` zuweisen oder indem Sie ein Mitglied vom Typ ` Qt::Axis ` an die Hilfsfunktion ` setAxis ` übergeben. Standardmäßig ist die Achse (0, 0, 1), d. h. eine Drehung um die Z-Achse.
Die Eigenschaft „angle“, die von `QGraphicsRotation` bereitgestellt wird, beschreibt nun den Drehwinkel in Grad um diese Achse.
QGraphicsRotation stellt bestimmte Parameter zur Verfügung, mit denen gesteuert werden kann, wie die Drehung angewendet werden soll.
Der Ursprung ist der Punkt, um den das Element gedreht wird (d. h., er bleibt relativ zum übergeordneten Element feststehend, während der Rest des Elements gedreht wird). Standardmäßig liegt der Ursprung QPointF(0, 0).
Die Eigenschaft „angle“ gibt den Drehwinkel in Grad an, um den das Element im Uhrzeigersinn um den Ursprung gedreht werden soll. Dieser Wert kann auch negativ sein, was eine Drehung gegen den Uhrzeigersinn anzeigt. Für Animationszwecke kann es zudem sinnvoll sein, Drehwinkel anzugeben, die über den Bereich von (-360, 360) Grad hinausgehen, beispielsweise um zu animieren, wie sich ein Element mehrmals dreht.
Hinweis: Die endgültige Drehung ist das kombinierte Ergebnis einer Drehung im 3D-Raum, gefolgt von einer Projektion zurück in den 2D-Raum. Wenn mehrere Drehungen nacheinander durchgeführt werden, verhalten sie sich nicht wie erwartet, es sei denn, sie erfolgten alle um die Z-Achse.
Siehe auch QGraphicsTransform, QGraphicsItem::setRotation() und QTransform::rotate().
Dokumentation der Eigenschaften
angle : qreal
Diese Eigenschaft gibt den Winkel für eine Drehung im Uhrzeigersinn in Grad an.
Der Winkel kann eine beliebige reelle Zahl sein; der Standardwert ist 0,0. Ein Wert von 180 bewirkt eine Drehung um 180 Grad im Uhrzeigersinn. Wenn Sie eine negative Zahl angeben, wird das Element gegen den Uhrzeigersinn gedreht. Normalerweise liegt der Drehwinkel im Bereich (-360, 360), Sie können jedoch auch Werte außerhalb dieses Bereichs angeben (z. B. ergibt ein Winkel von 370 Grad dasselbe Ergebnis wie 10 Grad). Wenn Sie den Winkel auf NaN setzen, erfolgt keine Drehung.
Zugriffsfunktionen:
| qreal | angle() const |
| void | setAngle(qreal) |
Benachrichtigungssignal:
| void | angleChanged() |
Siehe auch „origin“.
axis : QVector3D
Diese Eigenschaft enthält eine Drehachse, die durch einen Vektor im 3D-Raum angegeben wird.
Dies kann eine beliebige Achse im 3D-Raum sein. Standardmäßig ist die Achse (0, 0, 1), die auf die Z-Achse ausgerichtet ist. Wenn Sie eine andere Achse angeben, liefert „ QGraphicsRotation “ eine Transformation, die um diese Achse dreht. Wenn Sie beispielsweise ein Element um seine X-Achse drehen möchten, könnten Sie (1, 0, 0) als Achse übergeben.
Zugriffsfunktionen:
| QVector3D | axis() const |
| void | setAxis(const QVector3D &axis) |
| void | setAxis(Qt::Axis axis) |
Notifier-Signal:
| void | axisChanged() |
Siehe auch „ QTransform “ und „ QGraphicsRotation::angle “.
origin : QVector3D
Diese Eigenschaft enthält den Ursprung der Drehung im 3D-Raum.
Alle Drehungen erfolgen relativ zu diesem Punkt (d. h., dieser Punkt bleibt relativ zum übergeordneten Element fest, wenn das Element gedreht wird).
Zugriffsfunktionen:
| QVector3D | origin() const |
| void | setOrigin(const QVector3D &point) |
Benachrichtigungssignal:
| void | originChanged() |
Siehe auch angle.
Dokumentation der Mitgliedsfunktionen
QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)
Erstellt ein neues `QGraphicsRotation`-Objekt mit dem angegebenen ` parent`.
[virtual noexcept] QGraphicsRotation::~QGraphicsRotation()
Hebt die Drehung der Grafiken auf.
[signal] void QGraphicsRotation::angleChanged()
Dieses Signal wird immer dann ausgegeben, wenn sich der Winkel geändert hat.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ angle “.
Siehe auch „ QGraphicsRotation::angle “.
[override virtual] void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
Implementiert: ` QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const`.
[signal] void QGraphicsRotation::axisChanged()
Dieses Signal wird immer dann ausgelöst, wenn sich die Achse des Objekts ändert.
Hinweis: Notifier -Signal für die Eigenschaft „ axis “.
Siehe auch „ QGraphicsRotation::axis “.
[signal] void QGraphicsRotation::originChanged()
Dieses Signal wird immer dann ausgegeben, wenn sich der Ursprung geändert hat.
Hinweis: Notifier -Signal für die Eigenschaft „origin“.
Siehe auch „ QGraphicsRotation::origin “.
void QGraphicsRotation::setAxis(Qt::Axis axis)
Hilfsfunktion zum Setzen der Achse auf „ axis “.
Hinweis: Die Rotation „ Qt::YAxis “ für „ QTransform “ ist gegenüber der korrekten mathematischen Rotation im 3D-Raum umgekehrt. Die Klasse „ QGraphicsRotation “ implementiert eine korrekte mathematische Rotation. Die folgenden beiden Codeabschnitte führen dieselbe Transformation durch:
QTransform t;
t.rotate(45, Qt::YAxis);
QGraphicsRotation r;
r.setAxis(Qt::YAxis);
r.setAngle(-45);Hinweis: Setter -Funktion für die Eigenschaft „ axis “.
Siehe auch ` axis()`.
© 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.