Mathc matrices/Fichiers c : mul rot
Installer et compiler ces fichiers dans votre répertoire de travail.
mul_rot.c |
---|
/* ------------------------------------ */
/* Save as : mul_rot.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(void)
{
double alpha = rp_I(360);
double **A = i_mR(R2, C2);
double **A_t = i_mR(R2, C2);
double **AA_t = i_mR(R2, C2);
double **A_tA = i_mR(R2, C2);
clrscrn();
rot2D_mR(A, PI/180.*alpha);
transpose_mR(A,A_t);
printf(" alpha : %.0f° \n\n",alpha);
printf(" A : ");
p_mR(A,S10,P5,C6);
printf(" A_t : ");
p_mR(A_t,S10,P5,C6);
printf(" AA_t : ");
p_mR(mul_mR(A,A_t,AA_t),S10,P5,C6);
printf(" A_tA : ");
p_mR(mul_mR(A_t,A,A_tA),S10,P5,C6);
f_mR(A);
f_mR(A_t);
f_mR(AA_t);
f_mR(A_tA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun();
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Ici nous travaillons avec la fonction rot2D_mR().
rot2D_mR(); donne une matrice qui permet d'effectuer des rotations.
Sa transposé est aussi son inverse.
C'est-à-dire que, si on multiplie la matrice par sa transposé on obtient la matrice identité.
Exemple de sortie écran :
alpha : 305°
A :
+0.57358 +0.81915
-0.81915 +0.57358
A_t :
+0.57358 -0.81915
+0.81915 +0.57358
AA_t :
+1.00000 +0.00000
+0.00000 +1.00000
A_tA :
+1.00000 +0.00000
+0.00000 +1.00000
Press return to continue
Press X to stop