Tutoriel: utilisation des matrices de rotations dans l'espace.


Description

Suite au post de Top30, il m'est venu à l'idée de vous montrer ce que l'on peut faire rapidement à l'aide de fonctions mathématiques et notamment les matrices de rotations usuelles dans l'espace.

Je vais pas rentrer trop dans le sujet mais ces matrices permettent de déplacer un point en rotation dans l'espace selon un axe donnée en fonction d'un angle.
Dans l'espace, trois rotations sont possibles donc 3 matrices. Ces matrices sont de dimension 3*3.
Pour retrouver les nouvelles coordonnées d'un point en fonction d'un angle , il suffit de multiplier les anciennes coordonnées[x,y,z] par la matrice de rotation.
Attention le produit de 2 matrices n'a rien à voir avec le produit de deux nombres. Je vous incite à retourner dans vos bouquins de maths pour retrouver la technique.

Maintenant faites tourner plusieurs points, reliés les par des segments, vous obtiendrez des formes géométriques en rotation suivant l'axe de votre choix.

Source / Exemple :


rx[1][1]=1;	rx[1][2]=0;	     rx[1][3]=0; 
rx[2][1]=0;	rx[2][2]=Math.cos(wx);    rx[2][3]=-Math.sin(wx); 
rx[3][1]=0;	rx[3][2]=Math.sin(wx);     rx[3][3]=Math.cos(wx); 

/***** ceci est la matrice générale 
pour une rotation d'angle "wy" autour de l'axe des y

          • /
ry[1][1]=Math.cos(wy); ry[1][2]=0; ry[1][3]=-Math.sin(wy); ry[2][1]=0; ry[2][2]=1; ry[2][3]=0; ry[3][1]=Math.sin(wy); ry[3][2]=0; ry[3][3]=Math.cos(wy); /***** ceci est la matrice générale pour une rotation d'angle "wz" autour de l'axe des z
          • /
rz[1][1]=Math.cos(wz); rz[1][2]=-Math.sin(wz); rz[1][3]=0; rz[2][1]=Math.sin(wz); rz[2][2]=Math.cos(wz); rz[2][3]=0; rz[3][1]=0; rz[3][2]=0; rz[3][3]=1;

Conclusion :


Remarque pour la source de Top30, en faisant :
._x = (distance * Math.cos (angle * Math.PI / 180))
._y = (distance * Math.sin (angle * Math.PI / 180))

Il a simplement sans le savoir exprimé le résultat du produit de la matrice de rotation en 2d suivant l'axe z (de dimension 2*2: dans le plan xy) avec les coordonnées de départ.

Effectivement dans l'espace, ces matrices se compliquent (voir ci-dessus) mais peuvent être rapidement retrouvées avec un minimum de connaissances en maths. Elles sont la de toute manière. Utilisez les à votre gré.

Tout ceci est de la théorie, en pratique c'est plus compréhensible.

Je suis à votre disposition pour toute remarque et informations

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.