Developpez.com - Qt
X

Choisissez d'abord la catégorieensuite la rubrique :

Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QMatrix4x4

La classe QMatrix4x4 représente une matrice de transformation 4 × 4 dans un monde 3D. Plus d'informations...

#include <QMatrix4x4>

Voir la position dans l'arbre des classes.

Cette classe a été introduite dans Qt 4.6.

Description détaillée

La classe QMatrix4x4 représente une matrice de transformation 4 × 4 dans un monde 3D.

Voir aussi QVector3D et QGenericMatrix.

Fonctions membres

QMatrix4x4::QMatrix4x4 ()

Construit une matrice identité.

QMatrix4x4::QMatrix4x4 ( const qreal * values )

Construit une matrice à partir de 16 nombres à virgule flottante values. Le contenu du tableau values est considéré comme étant dans le sens des lignes.

Si la matrice est d'un type spécial (identité, translation, redimensionnement, etc.), les programmeurs doivent faire suivre cette construction d'un appel à la fonction optimize() s'ils souhaitent avoir une matrice QMatrix4x4 optimisant les prochains appels à translate(), scale(), etc.

Voir aussi copyDataTo() et optimize().

QMatrix4x4::QMatrix4x4 ( qreal m11, qreal m12, qreal m13, qreal m14, qreal m21, qreal m22, qreal m23, qreal m24, qreal m31, qreal m32, qreal m33, qreal m34, qreal m41, qreal m42, qreal m43, qreal m44 )

Construit une matrice à partir des 16 éléments m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43 et m44. Les éléments sont spécifiés dans le sens des lignes.

Si la matrice est d'un type spécial (identité, translation, redimensionnement, etc.), les programmeurs doivent faire suivre ce constructeur d'un appel à la fonction optimize() s'ils souhaitent avoir une matrice QMatrix4x4 optimisant les prochains appels à translate(), scale(), etc.

Voir aussi optimize().

QMatrix4x4::QMatrix4x4 ( const QGenericMatrix<N, M, qreal> & matrix )

Construit une matrice 4 × 4 à partir des quatre premières colonnes et des 4 premières lignes de matrix. Si matrix dispose de moins de 4 colonnes ou lignes, les éléments restants sont remplis avec les éléments d'une matrice d'identité.

Voir aussi toGenericMatrix() et qGenericMatrixToMatrix4x4().

QMatrix4x4::QMatrix4x4 ( const QTransform & transform )

Construit une matrice 4 × 4 à partir de la matrice de transformation 2D transform.

Si la matrice est d'un type spécial (identité, translation, redimensionnement, etc.), les programmeurs doivent faire suivre ce constructeur d'un appel à la fonction optimize() s'ils souhaitent avoir une matrice QMatrix4x4 optimisant les prochains appels à translate(), scale(), etc.

Voir aussi toTransform() et optimize().

QMatrix4x4::QMatrix4x4 ( const QMatrix & matrix )

Construit une matrice 4 × 4 à partir d'une transformation affine 2D matrix.

Si la matrice est d'un type spécial (identité, translation, redimensionnement, etc.), les programmeurs doivent faire suivre ce constructeur d'un appel à la fonction optimize() s'ils souhaitent avoir une matrice QMatrix4x4 optimisant les prochains appels à translate(), scale(), etc.

Voir aussi toAffine() et optimize().

QVector4D QMatrix4x4::column ( int index ) const

Retourne les éléments de la colonne index comme un vecteur 4D.

Voir aussi setColumn() et row().

const qreal * QMatrix4x4::constData () const

Retourne un pointeur constant sur les données brutes de cette matrice.

Voir aussi data().

void QMatrix4x4::copyDataTo ( qreal * values ) const

Récupère les 16 éléments de cette matrice et les copie dans values en suivant le sens des lignes.

qreal * QMatrix4x4::data ()

Retourne un pointeur sur les données brutes de cette matrice.

Voir aussi constData() et optimize().

const qreal * QMatrix4x4::data () const

Retourne un pointeur constant sur les données brutes de cette matrice.

Voir aussi constData().

qreal QMatrix4x4::determinant () const

Retourne le déterminant de cette matrice.

void QMatrix4x4::fill ( qreal value )

Remplit tous les éléments de cette matrice avec value.

void QMatrix4x4::flipCoordinates ()

Échange le système de coordonnées de gauche à droite ou de droite à gauche en multipliant les coordonnées y et z par -1. Cela est habituellement utilisé pour créer une vue orthographique gauche sans redimensionnement de la vue comme ortho() le fait.

Voir aussi ortho().

void QMatrix4x4::frustum ( qreal left, qreal right, qreal bottom, qreal top, qreal nearPlane, qreal farPlane )

Multiplie la matrice par une autre appliquant une projection en perspective pour une fenêtre avec comme coin bas gauche (left, bottom), et comme coin haut droit (right, top) et comme plan de coupe nearPlane et farPlane.

Voir aussi ortho() et perspective().

QMatrix4x4 QMatrix4x4::inverted ( bool * invertible = 0 ) const

Retourne l'inverse de cette matrice. Retourne une matrice identité si cette matrice ne peut être inversée ; c'est-à-dire determinant() est zéro. Si invertible n'est pas NULL, alors true va être inscrit à l'emplacement pointé si la matrice peut être inversée ; sinon false sera inscrit.

Si la matrice est reconnue comme matrice d'identité ou une matrice orthonormée, alors cette fonction inversera la matrice en utilisant des routines optimisées.

Voir aussi determinant() et normalMatrix().

bool QMatrix4x4::isIdentity () const

Retourne true si cette matrice est la matrice d'identité ; sinon false.

Voir aussi setToIdentity().

void QMatrix4x4::lookAt ( const QVector3D & eye, const QVector3D & center, const QVector3D & up )

Multiplie cette matrice par une autre appliquant une transformation pour placer un ?il eye. Le centre center indique le centre de cette vue vers où l'?il eye regarde. Le paramètre up indique quelle direction doit être considérée comme au-dessus pour l'?il eye.

QPoint QMatrix4x4::map ( const QPoint & point ) const

Déplace point en multipliant cette matrice avec point.

Voir aussi mapRect().

QPointF QMatrix4x4::map ( const QPointF & point ) const

Déplace point en multipliant cette matrice avec point.

Voir aussi mapRect().

QVector3D QMatrix4x4::map ( const QVector3D & point ) const

Déplace point en multipliant cette matrice avec point.

Voir aussi mapRect() et mapVector().

QVector4D QMatrix4x4::map ( const QVector4D & point ) const

Déplace point en multipliant cette matrice avec point.

Voir aussi mapRect().

QRect QMatrix4x4::mapRect ( const QRect & rect ) const

Déplace le rectangle rect en multipliant cette matrice par les coins du rectangle rect et créant alors un nouveau rectangle à partir des résultats. Le rectangle renvoyé sera un rectangle ordinaire avec les côtés parallèles aux axes horizontal et vertical.

Voir aussi map().

QRectF QMatrix4x4::mapRect ( const QRectF & rect ) const

Déplace le rectangle rect en multipliant cette matrice par les coins du rectangle rect et créant alors un nouveau rectangle à partir des résultats. Le rectangle renvoyé sera un rectangle ordinaire avec les côtés parallèles aux axes horizontal et vertical.

Voir aussi map().

QVector3D QMatrix4x4::mapVector ( const QVector3D & vector ) const

Déplace le vecteur vector en multipliant la portion 3 × 3 supérieure de cette matrice par vector. Les composantes translation et projection de cette matrice sont ignorées.

Voir aussi map().

QMatrix3x3 QMatrix4x4::normalMatrix () const

Retourne une matrice normale correspondant à cette matrice de transformation 4 × 4. La matrice normale est la transposée de l'inverse de la partie 3 × 3 supérieure de cette matrice 4 × 4. Si la sous-matrice 3 × 3 n'est pas inversible, cette fonction retourne la matrice d'identité.

Voir aussi inverted().

void QMatrix4x4::optimize ()

Optimise l'utilisation de cette matrice à partir de ses éléments actuels.

Certaines opérations telles que translate(), scale() et rotate() peuvent être effectuées avec plus d'efficacité si la matrice à modifier est connue pour être une matrice identité, une précédente translate(), ou une précédente scale(), etc.

Normalement la classe QMatrix4x4 garde une trace de ce type en interne lorsque les opérations sont effectuées. Toutefois, si la matrice est modifiée directement avec operator()() ou data(), alors la QMatrix4x4 perdra la trace de ce type et va revenir dans un état plus sûr mais moins efficace.

En appelant optimize() directement après la modification de la matrice, le programmeur peut forcer QMatrix4x4 à retrouver le type si les éléments apparaissent conformes à un des types optimisés.

Voir aussi operator()(), data() et translate().

void QMatrix4x4::ortho ( qreal left, qreal right, qreal bottom, qreal top, qreal nearPlane, qreal farPlane )

Multiplie la matrice avec une autre appliquant une projection orthographique pour une fenêtre ayant comme coin inférieur gauche (left, bottom) et comme coin supérieur droit (right, top) et les plans de coupe nearPlane et farPlane spécifiés.

Voir aussi frustum() et perspective().

void QMatrix4x4::ortho ( const QRect & rect )

Il s'agit d'une fonction surchargée.

Multiplie la matrice par une autre appliquant une projection orthographique pour une fenêtre avec comme limites le rectangle rect spécifié. Les plans de coupe seront respectivement -1 et 1.

Voir aussi frustum() et perspective().

void QMatrix4x4::ortho ( const QRectF & rect )

Il s'agit d'une fonction surchargée.

Multiplie la matrice par une autre appliquant une projection orthographique pour une fenêtre avec comme limites le rectangle rect spécifié. Les plans de coupe seront respectivement -1 et 1.

Voir aussi frustum() et perspective().

void QMatrix4x4::perspective ( qreal angle, qreal aspect, qreal nearPlane, qreal farPlane )

Multiplie la matrice par une autre appliquant une projection en perspective. Le champ de vue sera angle degrés dans une fenêtre de ratio aspect. La projection aura les plans de coupe nearPlane et farPlane.

Voir aussi ortho() et frustum().

void QMatrix4x4::rotate ( qreal angle, const QVector3D & vector )

Multiplie cette matrice par une autre qui effectue une rotation des coordonnées de angle degrés autour du vecteur vector.

Voir aussi scale() et translate().

void QMatrix4x4::rotate ( const QQuaternion & quaternion )

Multiplie cette matrice par une autre qui effectue une rotation des coordonnées selon le quaternion spécifié. Le quaternion est supposé normalisé.

Voir aussi scale(), translate() et QQuaternion.

void QMatrix4x4::rotate ( qreal angle, qreal x, qreal y, qreal z = 0.0f )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue une rotation des coordonnées de angle degrés autour du vecteur (x, y, z).

Voir aussi scale() et translate().

QVector4D QMatrix4x4::row ( int index ) const

Retourne les éléments de la ligne index comme vecteur 4D.

Voir aussi setRow() et column().

void QMatrix4x4::scale ( const QVector3D & vector )

Multiplie cette matrice par une autre qui effectue un redimensionnement des coordonnées de vector.

Voir aussi translate() et rotate().

void QMatrix4x4::scale ( qreal x, qreal y )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue un redimensionnement des coordonnées par les composants x et y.

Voir aussi translate() et rotate().

void QMatrix4x4::scale ( qreal x, qreal y, qreal z )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue un redimensionnement des coordonnées par les composants x, y et z.

Voir aussi translate() et rotate().

void QMatrix4x4::scale ( qreal factor )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue un redimensionnement des coordonnées du facteur factor.

Voir aussi translate() et rotate().

void QMatrix4x4::setColumn ( int index, const QVector4D & value )

Définit les éléments de la colonne index aux composants de value.

Voir aussi column() et setRow().

void QMatrix4x4::setRow ( int index, const QVector4D & value )

Définit les éléments de la ligne index aux composants de value.

Voir aussi row() et setColumn().

void QMatrix4x4::setToIdentity ()

Définit la matrice à la matrice d'identité.

Voir aussi isIdentity().

QMatrix QMatrix4x4::toAffine () const

Retourne une matrice de transformation affine 2D qui correspond à cette matrice. Il est supposé que cette matrice contient seulement des éléments de transformation affine 2D.

Voir aussi toTransform().

QGenericMatrix<N, M, qreal> QMatrix4x4::toGenericMatrix () const

Construit une matrice NxM générique à partir des N premières colonnes et des M premières lignes de cette matrice 4 × 4. Si N ou M sont supérieurs à 4, alors les éléments restants sont remplis avec les éléments de la matrice d'identité.

Voir aussi qGenericMatrixFromMatrix4x4().

QTransform QMatrix4x4::toTransform () const

Retourne la matrice de transformation 2D correspondant à cette matrice.

Le QTransform retourné est formé en enlevant la troisième ligne et la troisième colonne de QMatrix4x4. Cela convient pour l'implémentation des projections orthographiques où la coordonnée z doit être oubliée plutôt que d'être projetée.

Voir aussi toAffine().

QTransform QMatrix4x4::toTransform ( qreal distanceToPlane ) const

Retourne la matrice de transformation 3D correspondant à cette matrice.

Si distanceToPlane est non Null, il indique le facteur de projection à utiliser pour ajuster la coordonnée z. La valeur 1024 correspond au facteur de projection utilisé par QTransform::rotate() pour les axes x et y.

Si distanceToPlane est Null, alors le QTransform retourné est formé en enlevant la troisième ligne et la troisième colonne de QMatrix4x4. Cela convient pour l'implémentation des projections orthographiques où la coordonnée z doit être oubliée plutôt que d'être projetée.

Voir aussi toAffine().

void QMatrix4x4::translate ( const QVector3D & vector )

Multiplie cette matrice par une autre qui effectue une translation des coordonnées suivant les composants du vecteur vector.

Voir aussi scale() et rotate().

void QMatrix4x4::translate ( qreal x, qreal y )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue une translation des coordonnées suivant les composants x et y.

Voir aussi scale() et rotate().

void QMatrix4x4::translate ( qreal x, qreal y, qreal z )

Il s'agit d'une fonction surchargée.

Multiplie cette matrice par une autre qui effectue une translation des coordonnées suivant les composants x, y et z.

Voir aussi scale() et rotate().

QMatrix4x4 QMatrix4x4::transposed () const

Retourne cette matrice, transposée en sa diagonale.

QMatrix4x4::operator QVariant () const

Retourne la matrice comme un QVariant.

bool QMatrix4x4::operator!= ( const QMatrix4x4 & other ) const

Retourne true si cette matrice n'est pas identique à other; sinon false. Cet opérateur utilise une comparaison à virgule flottante exacte.

const qreal & QMatrix4x4::operator() ( int row, int column ) const

Retourne une référence constante de l'élément à la position (row, column) de cette matrice.

Voir aussi column() et row().

qreal & QMatrix4x4::operator() ( int row, int column )

Retourne une référence de l'élément à la position (row, column) de cette matrice permettant cet élément d'être modifié.

Voir aussi optimize(), setColumn() et setRow().

QMatrix4x4 & QMatrix4x4::operator*= ( const QMatrix4x4 & other )

Multiplie le contenu de other par cette matrice.

QMatrix4x4 & QMatrix4x4::operator*= ( qreal factor )

Il s'agit d'une fonction surchargée.

Multiplie tous les éléments de cette matrice par le facteur factor.

QMatrix4x4 & QMatrix4x4::operator+= ( const QMatrix4x4 & other )

Ajoute le contenu de other à cette matrice.

QMatrix4x4 & QMatrix4x4::operator-= ( const QMatrix4x4 & other )

Soustrait le contenu de other de cette matrice.

QMatrix4x4 & QMatrix4x4::operator/= ( qreal divisor )

Il s'agit d'une fonction surchargée.

Divise tous les éléments de cette matrice par divisor.

bool QMatrix4x4::operator== ( const QMatrix4x4 & other ) const

Retourne true si cette matrice est identique à other ; sinon false. Cet opérateur utilise une comparaison à virgule flottante exacte.

En relation mais non membres de la classe

bool qFuzzyCompare ( const QMatrix4x4 & m1, const QMatrix4x4 & m2 )

Retourne true si m1 et m2 sont égales. La comparaison utilise un petit facteur flou dans la comparaison des nombres à virgule flottante ; La fonction retourne false si elles sont différentes.

QGenericMatrix<N, M, qreal> qGenericMatrixFromMatrix4x4 ( const QMatrix4x4 & matrix )

Retourne une matrice NxM générique construite à partir des N premières colonnes et M premières lignes de matrix. Si N ou M sont supérieurs à 4, alors les éléments restants sont remplis avec les éléments de la matrice d'identité.

Voir aussi qGenericMatrixToMatrix4x4() et QMatrix4x4::toGenericMatrix().

QMatrix4x4 qGenericMatrixToMatrix4x4 ( const QGenericMatrix<N, M, qreal> & matrix )

Retourne une matrice 4 × 4 construite à partir des 4 premières colonnes et 4 premières lignes de matrix. Si la matrice matrix a moins de 4 colonnes ou lignes alors les éléments restants sont remplis avec les éléments de la matrice d'identité.

Voir aussi qGenericMatrixFromMatrix4x4().

QMatrix4x4 operator* ( const QMatrix4x4 & m1, const QMatrix4x4 & m2 )

Retourne le produit de m1 et m2.

QVector3D operator* ( const QVector3D & vector, const QMatrix4x4 & matrix )

Retourne le résultat de la transformation du vecteur vector par la matrice matrix, avec la matrice appliquée après le vecteur.

QVector3D operator* ( const QMatrix4x4 & matrix, const QVector3D & vector )

Retourne le résultat de la transformation du vecteur vector par la matrice matrix, avec la matrice appliquée avant le vecteur.

QVector4D operator* ( const QVector4D & vector, const QMatrix4x4 & matrix )

Retourne le résultat de la transformation du vecteur vector par la matrice matrix, avec la matrice appliquée après le vecteur.

QVector4D operator* ( const QMatrix4x4 & matrix, const QVector4D & vector )

Retourne le résultat de la transformation du vecteur vector par la matrice matrix, avec la matrice appliquée avant le vecteur.

QPoint operator* ( const QPoint & point, const QMatrix4x4 & matrix )

Retourne le résultat de la transformation du point par la matrice matrix, avec la matrice appliquée après le point.

QPointF operator* ( const QPointF & point, const QMatrix4x4 & matrix )

Retourne le résultat de la transformation du point par la matrice matrix, avec la matrice appliquée après le point.

QPoint operator* ( const QMatrix4x4 & matrix, const QPoint & point )

Retourne le résultat de la transformation du point par la matrice matrix, avec la matrice appliquée avant le point.

QPointF operator* ( const QMatrix4x4 & matrix, const QPointF & point )

Retourne le résultat de la transformation du point par la matrice matrix, avec la matrice appliquée avant le point.

QMatrix4x4 operator* ( qreal factor, const QMatrix4x4 & matrix )

Retourne le résultat de la multiplication de tous les éléments de la matrice matrix par le facteur factor.

QMatrix4x4 operator* ( const QMatrix4x4 & matrix, qreal factor )

Retourne le résultat de la multiplication de tous les éléments de la matrice matrix par le facteur factor.

QMatrix4x4 operator+ ( const QMatrix4x4 & m1, const QMatrix4x4 & m2 )

Retourne la somme de m1 et m2.

QMatrix4x4 operator- ( const QMatrix4x4 & m1, const QMatrix4x4 & m2 )

Retourne la différence entre m1 et m2.

QMatrix4x4 operator- ( const QMatrix4x4 & matrix )

Il s'agit d'une fonction surchargée.

Retourne l'opposé de la matrice matrix.

QMatrix4x4 operator/ ( const QMatrix4x4 & matrix, qreal divisor )

Retourne le résultat de la division de tous les éléments de la matrice matrix par le divisor.

QDataStream & operator<< ( QDataStream & stream, const QMatrix4x4 & matrix )

Écrit la matrice matrix donnée dans le flux stream et retourne une référence sur le flux.

Voir aussi Sérialisation des types de donnée Qt.

QDataStream & operator>> ( QDataStream & stream, QMatrix4x4 & matrix )

Lit la matrice 4 × 4 à partir du flux stream dans la matrice matrix et retourne une référence sur le flux.

Voir aussi Sérialisation des types de donnée Qt.

Remerciements

Merci à Alexandre Laurent pour la traduction ainsi qu'à Emmanuel Di Clemente, Jonathan Courtois et Claude Leloup pour leur relecture !

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 85
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 6
Page suivante

Le Qt Quarterly au hasard

Logo

Qt Quick sort de la quiétude

Qt Quarterly est la revue trimestrielle proposée par Nokia et à destination des développeurs Qt. Ces articles d'une grande qualité technique sont rédigés par des experts Qt. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web

Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -