Notre cube est défini par (cf. PROGRAMME 1) :
Nous avons également défini des fonctions d'accès aux composantes de chaque type (cf. PROGRAMME 2) ainsi que des opérations sur les vecteurs pour pouvoir accéder aux sommets du cube à partir du centre (cf. PROGRAMME 3).
La fonction segment
(cf. PROGRAMME 4) trace la ligne passée en paramètre à partir
des données fournies par le tableau de points. Quant à la fonction cree_cube
(cf. PROGRAMME 5) fournit, à partir de la donnée d'un point orienté et du demi-côté du cube,
un couple de tableaux. Le premier contient les 8 sommets et le second contient les 12 arêtes.
Les formules des coordonnées des vecteurs illustrés ci-dessus ont été obtenues par multiplication des matrices des trois rotations selon les trois angles. On ajoute alors ces vecteurs aux coordonnées du centre pour obtenir les huit points. Les côtés sont alors identifiés par les index dans le tableau.
On définit une fonction proj
dont le principe repose sur la
projection conique décrite à la FIGURE 3.
La projection conique nécessite deux paramètres : la position de l'observateur
dans l'espace qui est ici l'origine (pour simplifier le calcul) et la distance
f de l'observateur à l'écran. Le projeté d'un point quelconque de l'espace sur le plan (ici l'écran) est le point d'intersection
de la droite
avec ce plan. En se reportant à la FIGURE 3
(simplifié en deux dimensions), on remarque alors que le théorème
de THALÈS peut être appliqué pour calculer les coordonnées
du projeté dans le repère de l'écran, d'où la fonction
proj
(cf. PROGRAMME 6).
On applique ensuite cette fonction au tableau de points par projete_ts_les_pts
(cf. PROGRAMME 7). La fonction dessiner
représente le cube à partir des deux tableaux
précédents. A ce niveau (cf. PROGRAMME 4), on obtient un cube représenté en mode de fil
de fer, mais immobile !