Sur cette page

QGraphicsRotation Class

La classe QGraphicsRotation fournit une transformation de rotation autour d'un axe donné. Plus d'informations...

En-tête : #include <QGraphicsRotation>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : QGraphicsTransform

Propriétés

Fonctions publiques

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)

Fonctions publiques réimplémentées

virtual void applyTo(QMatrix4x4 *matrix) const override

Signaux

void angleChanged()
void axisChanged()
void originChanged()

Description détaillée

Vous pouvez fournir l'axe souhaité en assignant un QVector3D à la propriété axis ou en passant un membre de Qt::Axis à la fonction de commodité setAxis. Par défaut, l'axe est (0, 0, 1), c'est-à-dire qu'il s'agit d'une rotation autour de l'axe Z.

La propriété angle, fournie par QGraphicsRotation, décrit maintenant le nombre de degrés de rotation autour de cet axe.

QGraphicsRotation fournit certains paramètres permettant de contrôler la manière dont la rotation doit être appliquée.

L'origine est le point autour duquel l'élément est tourné (c'est-à-dire qu'il reste fixe par rapport au parent lorsque le reste de l'élément est tourné). Par défaut, l'origine est QPointF(0, 0).

La propriété angle indique le nombre de degrés de rotation de l'élément dans le sens des aiguilles d'une montre autour de l'origine. Cette valeur peut également être négative, ce qui indique une rotation dans le sens inverse des aiguilles d'une montre. À des fins d'animation, il peut également être utile de fournir des angles de rotation supérieurs à (-360, 360) degrés, par exemple pour animer la façon dont un élément pivote plusieurs fois.

Remarque : la rotation finale est l'effet combiné d'une rotation dans l'espace 3D suivie d'une projection en 2D. Si plusieurs rotations sont effectuées successivement, elles ne se comporteront pas comme prévu si elles n'ont pas toutes été effectuées autour de l'axe Z.

Voir également QGraphicsTransform, QGraphicsItem::setRotation(), et QTransform::rotate().

Documentation sur les propriétés

angle : qreal

Cette propriété indique l'angle de rotation dans le sens des aiguilles d'une montre, en degrés.

L'angle peut être un nombre réel quelconque ; la valeur par défaut est 0,0. Une valeur de 180 entraîne une rotation de 180 degrés dans le sens des aiguilles d'une montre. Si vous indiquez un nombre négatif, l'élément sera tourné dans le sens inverse des aiguilles d'une montre. Normalement, l'angle de rotation se situe dans la plage (-360, 360), mais vous pouvez également fournir des nombres en dehors de cette plage (par exemple, un angle de 370 degrés donne le même résultat que 10 degrés). Un angle de 370 degrés donne le même résultat que 10 degrés). La valeur NaN n'entraîne aucune rotation.

Fonctions d'accès :

qreal angle() const
void setAngle(qreal)

Signal de notification :

void angleChanged()

Voir aussi origine.

axis : QVector3D

Cette propriété contient un axe de rotation, spécifié par un vecteur dans l'espace 3D.

Il peut s'agir de n'importe quel axe de l'espace 3D. Par défaut, l'axe est (0, 0, 1), qui est aligné sur l'axe Z. Si vous indiquez un autre axe, QGraphicsRotation fournira une transformation qui tourne autour de cet axe. Par exemple, si vous souhaitez faire pivoter un élément autour de son axe X, vous pouvez indiquer (1, 0, 0) comme axe.

Fonctions d'accès :

QVector3D axis() const
void setAxis(const QVector3D &axis)
void setAxis(Qt::Axis axis)

Signal de notification :

void axisChanged()

Voir aussi QTransform et QGraphicsRotation::angle.

origin : QVector3D

Cette propriété définit l'origine de la rotation dans l'espace 3D.

Toutes les rotations seront effectuées par rapport à ce point (c'est-à-dire que ce point restera fixe, par rapport au parent, lorsque l'élément sera tourné).

Fonctions d'accès :

QVector3D origin() const
void setOrigin(const QVector3D &point)

Signal de notification :

void originChanged()

Voir aussi angle.

Documentation des fonctions membres

QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)

Construit une nouvelle QGraphicsRotation avec la donnée parent.

[virtual noexcept] QGraphicsRotation::~QGraphicsRotation()

Détruit la rotation des graphiques.

[signal] void QGraphicsRotation::angleChanged()

Ce signal est émis lorsque l'angle a changé.

Note : Signal de notification pour la propriété angle.

Voir également QGraphicsRotation::angle.

[override virtual] void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const

Réimplémente : QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const.

[signal] void QGraphicsRotation::axisChanged()

Ce signal est émis lorsque l'axe de l'objet change.

Remarque : signal de notification pour la propriété axis.

Voir également QGraphicsRotation::axis.

[signal] void QGraphicsRotation::originChanged()

Ce signal est émis lorsque l'origine a changé.

Note : Signal de notification pour la propriété origin.

Voir également QGraphicsRotation::origin.

void QGraphicsRotation::setAxis(Qt::Axis axis)

Fonction pratique pour définir l'axe sur axis.

Remarque : la rotation de Qt::YAxis pour QTransform est inversée par rapport à la rotation mathématique correcte dans l'espace 3D. La classe QGraphicsRotation implémente une rotation mathématique correcte. Les deux séquences de code suivantes effectueront la même transformation :

QTransform t;
t.rotate(45, Qt::YAxis);

QGraphicsRotation r;
r.setAxis(Qt::YAxis);
r.setAngle(-45);

Note : Fonction de définition de la propriété axis.

Voir aussi 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.