Transformations géométriques Par |
Après deux didacticiels destinés à vous enseigner les principes de base d'OpenGL, nous allons aujourd'hui nous intéresser à un sujet un peu plus délicat qui demande, pour une bonne compréhension, de posséder quelques bases mathématiques : les transformations géométriques.
Dans les didacticiels précédents, nous avons créé nos objets en indiquant la position dans l'espace de chacun des points. Il se trouve que le carré et le cube que nous avons utilisés se trouvaient centrés en l'origine. La dernière fois nous avons vu qu'il était possible de stocker des objets dans des structures de données. Nous l'avons fait pour notre cube. Imaginons à présent que nous voulions afficher une scène contenant plusieurs cubes. La première solution qui vient à l'esprit consiste à décrire les points de chaque cube à la position à laquelle ils doivent être affichés : si on souhaite afficher un cube dont le centre se situe au point (5,0,0). Il est aisé de faire le calcul des coordonnées des points. Supposons maintenant que nous voulions qu'un second cube soit centré en l'origine, et qu'il subisse une rotation autour de l'axe Z de 5 degrés. Vous conviendrez que le calcul "à la main" n'est pas envisageable. OpenGL propose pour nous aider un certain nombre de transformations de base : les translations, les rotations et les homothéties. Pour bien comprendre comment utiliser les transformations, intéressons-nous dans un premier temps aux aspects mathématiques de la 3D.
|