Auf dieser Seite

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.