Exercice de piscine en C sur la manipulation de structures et matrices - l'architecture des données en mémoire.
Telecharger & tester
- WebAssembly: Testable directement dans le navigateur ci-dessus.
make && ./102architect (calcul de transformations geometriques 2D/3D : rotation, translation, echelle, reflexion)
102architect est un projet Epitech de piscine (B-MAT-100) qui simule le moteur geometrique d'un logiciel de plan d'architecte : deplacer des portes et des fenetres, changer de point de vue, zoomer, refleter un objet. Toutes ces operations sont implementees comme des transformations geometriques 2D exprimees en coordonnees homogenes, c'est-a-dire des matrices 3x3 appliquees a un point (x, y, 1).
Le programme doit implementer la translation selon un vecteur donne, la mise a l'echelle (scaling) selon des facteurs distincts en x et en y, la rotation centree sur l'origine O d'un angle donne, et la reflexion par rapport a un axe passant par O avec une inclinaison donnee. Plusieurs transformations peuvent etre enchainees en une seule commande : le programme compose alors les matrices successivement pour obtenir la matrice globale et les coordonnees finales du point.
L'usage est ./102architect x y transfo1 arg11 [arg12] [transfo2 arg21 [arg22]] ..., avec les flags -t i j pour la translation, -z m n pour le scaling, -r d pour la rotation et -s d pour la reflexion. Pour chaque transformation appliquee, le programme affiche la matrice 3x3 correspondante avant d'afficher les coordonnees du point transforme.
L'usage d'une bibliotheque de calcul matriciel telle que numpy est explicitement interdit : la multiplication de matrices 3x3 est ecrite a la main. Les bonus suggeres portent sur l'ajout de transformations supplementaires et sur une interface graphique visualisant l'effet des transformations sur plusieurs points ou figures.
Projet suivant
