Sur cette page

QGraphicsRotation Class

La classe QGraphicsRotation permet d'effectuer une transformation de rotation autour d'un axe donné. En savoir plus...

En-tête : #include <QGraphicsRotation>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : 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 spécifier l'axe souhaité en attribuant une valeur de type « QVector3D » à la propriété «axis» ou en transmettant un membre «if Qt::Axis » à la fonction de commodité « setAxis ». Par défaut, l'axe est (0, 0, 1), c'est-à-dire une rotation autour de l'axe Z.

La propriété « angle », fournie par QGraphicsRotation, décrit désormais 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 pivote (c’est-à-dire qu’il reste fixe par rapport à son parent tandis que le reste de l’élément pivote). 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 définir des angles de rotation supérieurs à la plage (-360, 360) degrés, par exemple pour animer la rotation d’un élément effectuant plusieurs tours.

Remarque : la rotation finale résulte de 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 à moins qu’elles ne s’effectuent toutes autour de l’axe Z.

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

Documentation des propriétés

angle : qreal

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

L'angle peut être n'importe quel nombre réel ; la valeur par défaut est 0,0. Une valeur de 180 correspond à 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 pivoté dans le sens inverse des aiguilles d'une montre. Normalement, l'angle de rotation se situe dans l'intervalle (-360, 360), mais vous pouvez également indiquer des nombres hors de cet intervalle (par exemple, un angle de 370 degrés donne le même résultat que 10 degrés). Si vous définissez l'angle sur NaN, aucune rotation n'aura lieu.

Fonctions d’accès :

qreal angle() const
void setAngle(qreal)

Signal de notification :

void angleChanged()

Voir également «origin ».

axis : QVector3D

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

Il peut s'agir de n'importe quel axe dans l'espace 3D. Par défaut, l'axe est (0, 0, 1), ce qui correspond à l'axe Z. Si vous indiquez un autre axe, la méthode ` QGraphicsRotation ` renverra une transformation effectuant une rotation autour de cet axe. Par exemple, si vous souhaitez faire pivoter un élément autour de son axe X, vous pouvez passer (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 également QTransform et QGraphicsRotation::angle.

origin : QVector3D

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

Toutes les rotations s'effectueront par rapport à ce point (c'est-à-dire que ce point restera fixe par rapport au parent lorsque l'élément sera pivoté).

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)

Crée un nouvel objet `QGraphicsRotation` avec l'parent` spécifié.

[virtual noexcept] QGraphicsRotation::~QGraphicsRotation()

Annule la rotation des éléments graphiques.

[signal] void QGraphicsRotation::angleChanged()

Ce signal est émis chaque fois que l'angle a changé.

Remarque : signalde notification pour la propriété angle.

Voir également QGraphicsRotation::angle.

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

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

[signal] void QGraphicsRotation::axisChanged()

Ce signal est émis chaque fois que l'axe de l'objet change.

Remarque : signalde notification pour la propriété axis.

Voir également QGraphicsRotation::axis.

[signal] void QGraphicsRotation::originChanged()

Ce signal est émis chaque fois que l'origine a changé.

Remarque : signalde notification pour la propriété « origin ».

Voir également QGraphicsRotation::origin.

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

Fonction pratique permettant de définir l'axe sur axis.

Remarque : la rotation « Qt::YAxis » de la classe « 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);

Remarque : fonction de définition (setter ) pour la propriété axis.

Voir également 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.