Index du Forum


 
 Index du ForumFAQRechercherS’enregistrerConnexion

:: Les Matrices ::

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Math -> Math
Sujet précédent :: Sujet suivant  
Auteur Message
Admin
Administrateur

Hors ligne

Inscrit le: 28 Oct 2011
Messages: 94
Point(s): 346
Moyenne de points: 3,68
Groupe: GROUPE 1

MessagePosté le: Dim 11 Mar - 13:51 (2012)    Sujet du message: Les Matrices Répondre en citant

                                                                        L'outil matrice
Représentation

Une matrice (
matrix en anglais) se représente comme un tableau de nombres composé de lignes et de colonnes.



 
Un exemple de matrice


On désigne généralement un élément par son numéro de ligne suivi de son numéro de colonne. Par exemple pour la matrice ci-dessus, l'élément en
(1,2) est 15.

Les matrices peuvent être de toutes tailles mais dans le cas d'OpenGL les matrices que nous utiliserons, implicitement ou non, seront des matrices
4x4 (4 lignes, 4 colonnes). Cette taille n'est pas anodine et est liée à l'utilisation géométrique qui en est faite en 3D (nous le verrons juste après).

Tout comme avec les nombres ou les vecteurs, nous pouvons effectuer certaines opérations sur les matrices. La seule qui nous intéresse ici est la multiplication.


Multiplication de matrices

Multiplier deux matrices est une gymnastique facile et rigolote. Mais les erreurs quand on le fait à la main sont assez fréquentes (tous ces chiffres qui se croisent, pauvres de nous !
).

Le principe est simple, pour calculer l'élément (i,j) de la matrice
C, produit de deux matrices A et B, on multiplie la ligne i de A par la colonne j de B comme formalisé par :

 


Cette formule un peu barbare se résume très simplement par le schéma suivant :




 
Principe de la multiplication matrice x matrice


Et pour bien comprendre ce que l'on fait de chaque élément, voici un calcul étape par étape pour 2 matrices simples :




 
Détail d'une multiplication matrice x matrice


Comme vous le voyez pour multiplier une ligne par une colonne, on fait la somme de chaque sous-produit entre éléments de la ligne de la matrice de gauche et de la colonne de la matrice de droite. La meilleure façon pour bien assimiler la technique est la pratique avec un papier et un crayon (ça va pour les matrices simples seulement, quand ça devient grand on s'embrouille vite
).

Pour une raison évidente, comme nous multiplions des lignes par des colonnes, on ne peut multiplier deux matrices
A et B que si le nombre de colonnes de A est égal au nombre de lignes de B. Mais rassurez-vous, vous n'avez pas à vous en préoccuper car dans notre cas nous utilisons des matrices carrées (autant de lignes que de colonnes) et donc cette condition est toujours vérifiée.


Contrairement aux nombres, la multiplication entre matrices n'est pas commutative ( AxB != BxA ). L'ordre des multiplications est donc important (comme nous le verrons lors de la combinaison de transformations).


Multiplication matrice x vecteur

Un vecteur n'est qu'un cas particulier de matrice avec une seule colonne. Il est donc tout à fait possible de multiplier une matrice par un vecteur (si la condition sur les tailles énoncée plus haut est remplie).


Exemple :



 
Multiplication matrice x vecteur (le résultat est un vecteur)


Matrice identité

La matrice identité est une matrice particulière, souvent notée I, dont tous les éléments de la diagonale sont à 1 (exemple en 4x4) :

 


C'est ce que l'on appelle un élément neutre, en effet un vecteur multiplié par la matrice identité en ressort inchangé :


 


Inverse

La dernière propriété qui nous intéresse sur les matrices est la notion d'inverse. Si par exemple nous avons une matrice M qui vient coder d'une certaine façon une translation de (1,1,1), alors son inverse M' sera une translation de (-1,-1,-1). Donc si l'on applique la matrice et son inverse à la suite à un vecteur, il reviendra donc comme il était au début. Mathématiquement on écrit ça comme ceci :


 


Le produit d'une matrice avec son inverse donne l'identité. L'exemple qui était pris (translation) était très simple. Dans le cas général calculer l'inverse d'une matrice est assez barbare mais je vous en donnerai l'implémentation quand nous en aurons besoin.


Transformations Maintenant que nous comprenons l'outil mathématique matrice, je vais vous en montrer une utilisation bien pratique : les transformations géométriques.

Nous l'avons vu plus haut, multiplier une matrice par un vecteur donne un autre vecteur. Ce vecteur résultat n'est autre que la transformée du vecteur initial par la transformation « contenue » dans la matrice.


On se sert donc d'une simple multiplication matrice de transformation x vecteur de coordonnées pour obtenir les coordonnées transformées d'un point :

 


Comme il est possible en utilisant une matrice de transformer un vecteur par un autre, nous allons utiliser cette propriété pour stocker dans la matrice des éléments pour exécuter chaque transformation élémentaire dont nous avons besoin en 3D : la rotation, la translation, et le changement d'échelle :


a
 

_________________
A friend In need Is a friend Indeed


ما الفشل إلا هزيمة مؤقتة تخلق لك فرص النجاح


Revenir en haut
Skype
Publicité






MessagePosté le: Dim 11 Mar - 13:51 (2012)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Math -> Math Toutes les heures sont au format GMT
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Texno x0.3 © theme by Larme D'Ange 2006
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com