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.