QGraphicsRotation Class
Die Klasse QGraphicsRotation ermöglicht eine Rotationstransformation um eine bestimmte Achse. Mehr...
Kopfzeile: | #include <QGraphicsRotation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QGraphicsTransform |
Eigenschaften
Öffentliche Funktionen
QGraphicsRotation(QObject *parent = nullptr) | |
virtual | ~QGraphicsRotation() |
qreal | angle() const |
QVector3D | axis() const |
QVector3D | origin() const |
void | setAngle(qreal) |
void | setAxis(Qt::Axis axis) |
void | setAxis(const QVector3D &axis) |
void | setOrigin(const QVector3D &point) |
Reimplementierte ö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 ein QVector3D zuweisen oder ein member if Qt::Axis an die Komfortfunktion setAxis übergeben. Standardmäßig ist die Achse (0, 0, 1), d.h. die Drehung um die Z-Achse.
Die Eigenschaft angle, die von QGraphicsRotation bereitgestellt wird, beschreibt nun die Anzahl der Grad, um die um diese Achse gedreht werden soll.
QGraphicsRotation stellt bestimmte Parameter zur Verfügung, um zu steuern, wie die Drehung angewendet werden soll.
Der Ursprung ist der Punkt, um den das Element gedreht wird (d.h. er bleibt relativ zum Elternteil fixiert, während der Rest des Elements gedreht wird). Standardmäßig ist der Ursprung QPointF(0, 0).
Die Eigenschaft angle gibt die Anzahl der Grad an, um die das Element im Uhrzeigersinn um den Ursprung gedreht wird. Dieser Wert kann auch negativ sein, was eine Drehung gegen den Uhrzeigersinn bedeutet. Für Animationszwecke kann es auch nützlich sein, Drehwinkel von mehr als (-360, 360) Grad anzugeben, um beispielsweise zu animieren, wie ein Element mehrmals gedreht wird.
Hinweis: Die endgültige Drehung ist der kombinierte Effekt einer Drehung im 3D-Raum, gefolgt von einer Projektion zurück in den 2D-Raum. Wenn mehrere Drehungen hintereinander ausgefü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 Eigenschaft
angle : qreal
Diese Eigenschaft enthält den Winkel für die Drehung im Uhrzeigersinn, in Grad.
Der Winkel kann eine beliebige reelle Zahl sein; der Standardwert ist 0,0. Ein Wert von 180 bedeutet 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), aber Sie können auch Zahlen außerhalb dieses Bereichs angeben (z. B. ergibt ein Winkel von 370 Grad das gleiche Ergebnis wie 10 Grad). Wird der Winkel auf NaN gesetzt, wird keine Drehung durchgeführt.
Zugriffsfunktionen:
qreal | angle() const |
void | setAngle(qreal) |
Melder-Signal:
void | angleChanged() |
Siehe auch Ursprung.
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 an der Z-Achse ausgerichtet ist. Wenn Sie eine andere Achse angeben, liefert QGraphicsRotation eine Transformation, die um diese Achse rotiert. Wenn Sie zum Beispiel ein Objekt um seine X-Achse drehen möchten, können Sie (1, 0, 0) als Achse übergeben.
Zugriffsfunktionen:
QVector3D | axis() const |
void | setAxis(const QVector3D &axis) |
void | setAxis(Qt::Axis axis) |
Melder-Signal:
void | axisChanged() |
Siehe auch QTransform und QGraphicsRotation::angle.
origin : QVector3D
Diese Eigenschaft legt den Ursprung der Drehung im 3D-Raum fest.
Alle Drehungen werden relativ zu diesem Punkt durchgeführt (d. h. dieser Punkt bleibt relativ zum übergeordneten Element fixiert, wenn das Element gedreht wird).
Zugriffsfunktionen:
QVector3D | origin() const |
void | setOrigin(const QVector3D &point) |
Melder-Signal:
void | originChanged() |
Siehe auch angle.
Dokumentation der Mitgliedsfunktionen
QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)
Konstruiert eine neue QGraphicsRotation mit der angegebenen parent.
[virtual noexcept]
QGraphicsRotation::~QGraphicsRotation()
Zerstört die Grafikrotation.
[signal]
void QGraphicsRotation::angleChanged()
Dieses Signal wird ausgegeben, wenn sich der Winkel geändert hat.
Hinweis: Meldersignal für die Eigenschaft angle.
Siehe auch QGraphicsRotation::angle.
[override virtual]
void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
Reimplements: QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const.
[signal]
void QGraphicsRotation::axisChanged()
Dieses Signal wird ausgesendet, wenn sich die Achse des Objekts ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft axis.
Siehe auch QGraphicsRotation::axis.
[signal]
void QGraphicsRotation::originChanged()
Dieses Signal wird ausgesendet, wenn sich der Ursprung geändert hat.
Hinweis: Benachrichtigungssignal für die Eigenschaft Ursprung.
Siehe auch QGraphicsRotation::origin.
void QGraphicsRotation::setAxis(Qt::Axis axis)
Convenience-Funktion, um die Achse auf axis zu setzen.
Hinweis: Die Drehung Qt::YAxis für QTransform ist gegenüber der korrekten mathematischen Drehung im 3D-Raum invertiert. Die Klasse QGraphicsRotation implementiert eine korrekte mathematische Drehung. Die folgenden zwei Codesequenzen führen die gleiche 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().
© 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.