/* Mathematiques de l'informatique graphique */ /* Transformation geometrique de composition */ /* d'une translation, d'une rotation */ /* et d'un zoom en coordonnees homogenes */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Mars 2020 */ #include #include #include #include "TG3D.h" #include "Tr3D.h" #include "Rt3D.h" #include "Sc3D.h" #include "Dir3D.h" #include "TRZ3D.h" /* Construit la TRZ3D identite */ TRZ3D::TRZ3D(void):TG3D() { } /* Construit la TRZ3D obtenue par composition */ /* de la translation de direction tr, */ /* de la rotation de angle degres */ /* autour de l'axe de direction axe */ /* passant par l'origine, */ /* et du zoom de rapports rx, ry et rz */ TRZ3D::TRZ3D(Dir3D *tr,float angle,Dir3D *axe,float rx,float ry,float rz) { Tr3D translation(tr); Rt3D rotation(angle,axe); Sc3D scale(rx,ry,rz); TG3D tg(&translation,&rotation); for ( int i = 0 ; i < 4 ; i++ ) for ( int j = 0 ; j < 4 ; j++ ) { c[i][j] = 0.0; for ( int k = 0 ; k < 4 ; k++ ) c[i][j] += tg.c[i][k]*scale.c[k][j]; } } /* Construit le clone de la TRZ3D trz */ TRZ3D::TRZ3D(TRZ3D *trz):TG3D(trz) { } /* Destructeur */ TRZ3D::~TRZ3D(void) { }