/* Transformations geometriques */ /* en coordonnees homogenes */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2012 */ #include #include #include "Position3D.h" #include "Direction3D.h" #include "Translation3D.h" #include "Rotation3D.h" #include "TransformationGeometrique3D.h" /* Fonction principale */ int main(int argc,char **argv) { Position3D *p = new Position3D(1.0,2.0,5.0); Translation3D *t1 = new Translation3D(-p->c[0],-p->c[1],-p->c[2]); Rotation3D *r = new Rotation3D(10.0,0.0,0.0,1.0); Translation3D *t2 = new Translation3D(p->c[0],p->c[1],p->c[2]); TransformationGeometrique3D *tg = new TransformationGeometrique3D(); tg->compose(t1); tg->compose(r); tg->compose(t2); printf("Matrice de transformation:\n"); tg->print(); printf("\n"); { Position3D *p = new Position3D(1.0,2.0,5.0); printf("P : "); p->print(); printf("\n"); tg->transforme(p); printf("P' : "); p->print(); printf("\n"); printf("\n"); delete(p); } { Position3D *p = new Position3D(1.0,2.0,3.0); printf("P : "); p->print(); printf("\n"); tg->transforme(p); printf("P' : "); p->print(); printf("\n"); printf("\n"); delete(p); } { Position3D *p = new Position3D(0.0,1.0,3.0); printf("P : "); p->print(); printf("\n"); tg->transforme(p); printf("P' : "); p->print(); printf("\n"); printf("\n"); delete(p); } delete(tg); delete(t2); delete(r); delete(t1); delete(p); getchar(); return(0); }