Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Bonnes vibrations pour la 3D, le retour ... et l’implémentation

La méthode de vibration d’un trièdre pour avoir les coordonnées 3D d’un point dans une représentation 2D a été présentée en 2011. Elle vient d’être implémentée dans DGPad. Exemples d’utilisation

Article mis en ligne le 11 novembre 2013
dernière modification le 4 février 2026

par Yves Martin

DGPad, comme CaRMetal, n’est pas un logiciel de 3D (au sens de Blender par exemple). Toutefois, l’implémentation d’une vibration de son trièdre 3D permet de récupérer les infos 3D nécessaires et rend les constructions 3D élémentaires. C’est déjà un comportement 3D pour les points, les droites et les plans, soit ce qui sert en cours. Voici quelques exemples.

DGPad est un logiciel encore jeune, mais il progresse à une telle vitesse qu’il convient de faire un nouveau point, et en particulier sur ses outils 3D. Un article sur les expressions, si riches, était prévu, mais la vibration 3D est arrivée depuis ... les expressions ce sera pour une prochaine fois.

Les lecteurs les plus téméraires de MathémaTICE se souviennent peut-être de cette présentation un peu délirante de Pierre Marc Mazat qui expliquait, en mars 2011, dans son article intitulé La bonne vibration pour la 3D comment, en faisant quelques rotations (imperceptibles) du trièdre de référence, on pouvait obtenir les coordonnées 3D des points. Il utilisait à cette époque une matrice 3x3. Depuis, dans une recherche pour tester l’implémentation dans CaRMetal, Eric Hakenholz avait ramené la question à un système 2x2. Mais l’implémentation ne s’est pas concrétisée, dans la version officielle.

En optimisant le mode 3D de sa nouvelle application, Eric Hakenholz s’est lancé dans l’implémentation de la vibration du trièdre de DGPad. Le résultat est assez époustouflant, surtout pour faire rapidement des figures 3D significatives, en particulier sur tablette bien entendu.

D’où l’idée d’en faire un bref compte rendu, au moins pour que cette possibilité soit connue.

Avant d’aborder ce type de figure, voyons déjà les outils 3D actuels de DGPad. Ce module est encore en construction, opérationnel certes mais pas encore définitif... il devrait évoluer.

Les macros 3D de DGPad

Les deux premières illustrations proviennent du dossier 3D au premier niveau des macros (on lit la hiérarchie des dossiers sous les macros bibliothèque) et la troisième illustration est celle du dossier Géométrie (dans le dossier 3D). C’est ce dossier dont l’organisation n’est pas complètement arrêtée. Il peut, dans un futur proche se diviser en deux dossiers, selon le nombre d macros qu’il va rapidement contenir.

Repère : Il faut commencer par poser un repère. Un point suffit (l’origine). Le nom de l’origine du repère n’est pas pré-enregistré. Il s’appelle P1 par défaut si la page est blanche, on peut l’appeler O.

Géométrie est donc dossier qui contient - pour le moment, à la fois - des macros de construction et de calcul. Nous y reviendrons plus loin.

Montrer le sol : crée un polygone dans le plan xOy et un interrupteur permettant de le montrer/cacher.

Restriction de Theta : permet d’éviter que l’axe [Oz) tourne autour de (Oy). Cela évite que les élèves tournent les figures dans tous les sens. Mais c’est aussi utile pour l’enseignant qui fait une figure un peu complexe, quand on traite des arêtes cachées par exemple pour être sûr que c’est l’effet d’optique qui fait croire que le trièdre a tourné.

Point 3D est un dossier qui contient deux options : on montre l’origine du repère et une expression formée d’une liste de trois termes, ou on rentre les coordonnées dans un dialogue, ce qui évite de passer par une expression.

Contrairement à CaRMetal où les angles du repère (phi, théta) sont dans la figure, dans DGPad tout est entièrement traité en interne, donc plus rapide, d’où la possibilité d’installer la vibration sans perte visible de réactivité.

Arete 3D trace un segment entre deux points en trait plein s’il doit être visible ou en pointillé sinon. La syntaxe est la même que sur CaRMetal : pour tracer une arête [AB] d’un polyèdre convexe, on montre U à droite (d’une autre arête [BU] du polyèdre), A, V à gauche - d’une arête [VA] et B.
Sur des polyèdres complexes (snubcube etc ...) il faut un peu d’entrainement.

Solide est un dossier qui ne contient que le cube au moment où cet article est rédigé (avec traitement des arêtes cachées)

Placer un point dans un polygone de l’espace : ce n’est une macro mais juste la méthode à utiliser.
Avec l’outil général polygone, avec des points coplanaires, on peut construire un polygone dans l’espace. Dans ce cas l’outil point permet de prendre un point dans le polygone. Il commence par placer ce point sur le contour du polygone mais si on lâche le doigt ou le clic de souris dans le polygone c’est bien un point intérieur. Avec cet outil on peut déjà faire des exercices élémentaires d’incidence.

Obtenir de la manipulation directe sur des points de l’espace

En pratique la méthode précédente est indispensable pour réaliser des figures 3D avec manipulation directe sur certains points de l’espace : on les assujetti à appartenir à un plan - en pratique un triangle ou un quadrilatère - et on peut les manipuler ainsi en 3D, par exemple comme ceci :

Dans cette figure, on a commencé par construire un quadrilatère dans le plan y=1. Puis on a pris deux points dans ce « plan » et ensuite fait un autre plan (rose) qui dépend de ces deux points. Cette construction est le début de la figure que l’illustration 4 que nous verrons plus loin.

Toujours dans le cadre de la manipulation directe, on peut bien entendu prendre un point sur un segment et même sur une droite de l’espace, si celle-ci est définie par deux points de l’espace (car il faut que les coordonnées barycentriques d’un point sur objet soient fixes dans l’espace).

Toutes ces macros existaient dans DGPad avant l’implémentation de la vibration (qui date du 3 novembre 2013).

Voyons maintenant les macros qui utilisent la vibration, pour le moment, dans le dossier Géométrie.

Coordonnées 3D : on clique simplement sur le point dont on veut les coordonnées (sans avoir à montrer le repère, la macro le retrouve). La macro renvoie une expression formée d’une liste de trois termes. Voici une copie d’écran d’un exemple de base :

Distance 3D : là encore on ne clique que sur les deux points dont on veut la distance dans l’espace. La macro renvoie une expression.

Ce dossier contient ensuite deux macros géométriques

Normale et perpendiculaire qui font ce qu’on attend. Sur les copies d’écran ci-dessous, illustrées avec des « points de tablette », un peu gros, on construit un polygone à partir de trois points dont un dépend d’un paramètre. Pour construire la normale on ne montre qu’un polygone, et pour la perpendiculaire il faut ajouter le point dont est issu la perpendiculaire au plan (ici l’origine du repère).

Plus surprenant, une macro non indispensable a priori mais qui peut être ensuite intrumentalisée de bien des façons : Cercle par axe et point.

Dans cette illustration, l’axe est la droite verte, qui passe par les points (1/2, 0, 0) et (0, 1, 1) et le point M est sur la droite définie par les points (1/2, 0, 1) et (-1/2, 1/2, 0).

Voici cind exemples de réalisation utilisant la vibration 3D de DGPad.

Exemple 1 : le cerceau contre un mur.

Si un cerceau est posé contre trois murs (un trièdre tri-rectange), alors la distance du centre du repère au centre du cercle est r.$sqrt(2)$ si r est le rayon du cercle. Cette distance est donc indépendante de la position du cerceau contre les trois murs.

Dans la figure, on peut déplacer A, B, C et le repère à la souris

Préférer ouvrir cette figure https://lc.cx/Cerceau_Huygens dans un nouvel onglet.


Avec ces outils cette figure est facile à réaliser. Ici on ne dispose pas d’un cercle de rayon fixe, mais on construit le « cerceau » comme cercle inscrit à un triangle construit sur les axes.

On se donne donc trois points A, B, C sur les axes. La mesure en vraie grandeur des distances AB, BC, AC (par la vibration) permet de construire, par barycentre et donc sans vibration, à la fois le centre du cercle inscrit à ABC et les points de contact P, Q, R . Ceci étant fait, on mesure (vibration) la longueur du rayon du cercle inscrit IP, puis la distance de O à I (encore par vibration), et on compare avec le calcul r.$sqrt(2)$  : on voit que l’on a égalité avec 11 décimales ... ce qui montre aussi la qualité de cette méthode de vibration.

Exemple 2 : propriétés fines autour du tétraèdre orthocentrique

Dans la figure suivante, la construction et la confirmation sont faits grâce à la vibration

Présentation de la figure (avec des copies d’écran)

ABC sont sur le sol (O est le centre du repère). Les segments du sol sont les hauteurs de ABC, pied sous forme de carré cyan.
Leur intersection est le point rouge en forme de “diamant”, orthocentre du triangle du sol.

Le théorème classique dit qu’un tétraèdre est orthocentrique ssi un sommet se projette en l’orthocentre de la face opposée.
On sait aussi qu’un tétraèdre est orthocentrique ssi les arêtes opposées sont deux à deux orthogonales, en même qu’il suffit qu’il y ait deux couples d’arêtes orthogonale, le troisième l’est aussi, c’est une conséquence algébrique (du produit scalaire).

On se propose ici d’aller un peu plus loin que ce résultat général. Une illustration pratique sert bien en cours (de L3 pas de lycée).

Dans la figure les points Hk sont les pieds des hauteurs issues du sommet K (K=A,B,C,S).
On peut déplacer Hs. Un vrai plus de DGPad : le point peut à la fois être un point “dans ABC” (soit sur la face) - ou dans le plan du sol - tout en étant aimanté par les trois hauteurs du sol et l’orthocentre rouge ...

On déplace donc Hs mais aussi le sommet S pour que les projetés orthogonaux soient sur les faces (et non pas dans le plan mais en dehors des faces).

On voit mieux ce qui se passe en faisant tourner le repère.

On suppose que deux hauteurs sont sécantes : par exemple celles issues de B et de C
Alors on montre que le produit scalaire $\overrightarrow{BC}.\overrightarrow{SA}$<\math>est nul donc que ces deux arêtes sont orthogonales.
Mais on voit aussi (sur la figure plus loin, en faisant tourner le repère) que les deux autres hauteurs sont elles aussi sécantes (ce qui évident puisque cela se traduit aussi par $\overrightarrow{SA}.\overrightarrow{CB}$ = 0). Il est assez immédiat aussi (question d’incidence sur les plans) que D se projette sur la hauteur issue de A.
En réalité, dans la réalisation de l’illustration, c’est ce que l’on fait, on place Hs sur la hauteur, donc on illustre plus précisément le fait que si un sommet se projette sur une hauteur, les hauteurs sont deux à deux sécantes, et deux arêtes opposées sont orthogonales.

Si c’est le cas de deux hauteurs (ie si Hs est à l’intersection de deux hauteurs), il est sur l’orthocentre et donc les trois produits scalaires sont nuls), le tétraèdre est orthocentrique les trois hauteurs sont concourrantes.

La figure manipulable.
Elle a été mise à jour avec un widget pour écrire les produits scalaires en LaTeX. Le point S s’appelle D et Hs est le point Hd

On peut donc déplacer A, B et C, puis Hd et D. Placer Hd sur les différentes hauteurs de ABC, puis sur son orthocentre. On fait tourner le trièdre à la souris (le point O est le centre du repère.

Faire une figure comme celle-ci, en quelques minutes, est un vrai plaisir ...

Préférer ouvrir cette figure https://lc.cx/TetraedreOrtho dans un nouvel onglet.

Exemple 3 : perpendiculaire commune à deux droites non coplanaires

Le thème est on ne peut plus classique : étant données deux droites non coplanaires, il existe une unique perpendiculaire commune à ces deux droites. On se propose de la tracer, dans un contexte simple de points sur des faces d’un cube.

Sur la figure suivante, M est un point de la face ABCD, N de CDHG, P de BCGE et Q de EFGH, ce qui se voit d’ailleurs en regardant les coordonnées des points. On calcule alors - dans un logiciel de calcul formel - les coefficients $k_I$ et $k_J$ tels que $\overrightarrow{MI} = k_I \overrightarrow{MN}$ et $\overrightarrow{PJ} = k_J \overrightarrow{PQ}$. Ce n’est que la résolution d’un système de deux équations à deux inconnues, mais avec 12 paramètres (les coordonnées des quatre points).

Cette figure est, vibratoirement, moins spectaculaire que les deux précédentes, car la vibration ne sert qu’à avoir facilement les coordonnées des points M, N, P, Q alors que dans une version non vibrante, cela se fait assez facilement par barycentration des sommets des faces. Le reste n’est que du calcul algébrique.

Préférer ouvrir cette figure https://lc.cx/Perp_commune_3D dans un nouvel onglet.

On peut déplacer M, N, P, et Q dans leurs faces respectives. On peut avoir, sur des cas particuliers, en prenant les points sur les arêtes, (MN) // (PQ). La figure ne renvoie bien entendu qu’un seule seule perpendiculaire, celle calculée dans le cas général.

Pour les personnes qui n’ont jamais fait cet exercice, c’est intéressant de regarder ce que donne le calcul de ces deux coefficients $k_I$ et $k_J$

Détail du calcul de kI

Le calcul suivant a été fait avec wxMaxima, pour CaRMetal, avec deux droites (AB) et (CD), les coordonnées étaient nommées (xA, yA, zA) etc ...

On obtenait

kI (de (AB)

(((yB-yA)*yC-yA*yB+yA^2+(xB-xA)*xC-xA*xB+xA^2)*zD^2+(((yA-yB)*yD+(yA-yB)*yC+2*yA*yB-2*yA^2+(xA-xB)*xD+(xA-xB)*xC+2*xA*xB-2*xA^2)*zC+((yA-yC)*yD+yC^2-yA*yC+(xA-xC)*xD+xC^2-xA*xC)*zB+((yC+yB-2*yA)*yD-yC^2+(2*yA-yB)*yC+(xC+xB-2*xA)*xD-xC^2+(2*xA-xB)*xC)*zA)*zD+((yB-yA)*yD-yA*yB+yA^2+(xB-xA)*xD-xA*xB+xA^2)*zC^2+((yD^2+(-yC-yA)*yD+yA*yC+xD^2+(-xC-xA)*xD+xA*xC)*zB+(-yD^2+(yC-yB+2*yA)*yD+(yB-2*yA)*yC-xD^2+(xC-xB+2*xA)*xD+(xB-2*xA)*xC)*zA)*zC+(-yD^2+2*yC*yD-yC^2-xD^2+2*xC*xD-xC^2)*zA*zB+(yD^2-2*yC*yD+yC^2+xD^2-2*xC*xD+xC^2)*zA^2+((xB-xA)*xC-xA*xB+xA^2)*yD^2+(((xA-xB)*xD+(xA-xB)*xC+2*xA*xB-2*xA^2)*yC+((xA-xC)*xD+xC^2-xA*xC)*yB+((xC+xB-2*xA)*xD-xC^2+(2*xA-xB)*xC)*yA)*yD+((xB-xA)*xD-xA*xB+xA^2)*yC^2+((xD^2+(-xC-xA)*xD+xA*xC)*yB+(-xD^2+(xC-xB+2*xA)*xD+(xB-2*xA)*xC)*yA)*yC+(-xD^2+2*xC*xD-xC^2)*yA*yB+(xD^2-2*xC*xD+xC^2)*yA^2)/((yB^2-2*yA*yB+yA^2+xB^2-2*xA*xB+xA^2)*zD^2+((-2*yB^2+4*yA*yB-2*yA^2-2*xB^2+4*xA*xB-2*xA^2)*zC+((2*yA-2*yB)*yD+(2*yB-2*yA)*yC+(2*xA-2*xB)*xD+(2*xB-2*xA)*xC)*zB+((2*yB-2*yA)*yD+(2*yA-2*yB)*yC+(2*xB-2*xA)*xD+(2*xA-2*xB)*xC)*zA)*zD+(yB^2-2*yA*yB+yA^2+xB^2-2*xA*xB+xA^2)*zC^2+(((2*yB-2*yA)*yD+(2*yA-2*yB)*yC+(2*xB-2*xA)*xD+(2*xA-2*xB)*xC)*zB+((2*yA-2*yB)*yD+(2*yB-2*yA)*yC+(2*xA-2*xB)*xD+(2*xB-2*xA)*xC)*zA)*zC+(yD^2-2*yC*yD+yC^2+xD^2-2*xC*xD+xC^2)*zB^2+(-2*yD^2+4*yC*yD-2*yC^2-2*xD^2+4*xC*xD-2*xC^2)*zA*zB+(yD^2-2*yC*yD+yC^2+xD^2-2*xC*xD+xC^2)*zA^2+(xB^2-2*xA*xB+xA^2)*yD^2+((-2*xB^2+4*xA*xB-2*xA^2)*yC+((2*xA-2*xB)*xD+(2*xB-2*xA)*xC)*yB+((2*xB-2*xA)*xD+(2*xA-2*xB)*xC)*yA)*yD+(xB^2-2*xA*xB+xA^2)*yC^2+(((2*xB-2*xA)*xD+(2*xA-2*xB)*xC)*yB+((2*xA-2*xB)*xD+(2*xB-2*xA)*xC)*yA)*yC+(xD^2-2*xC*xD+xC^2)*yB^2+(-2*xD^2+4*xC*xD-2*xC^2)*yA*yB+(xD^2-2*xC*xD+xC^2)*yA^2)

Dans le cadre de DGPad, les coordonnées sont des listes de trois termes, ainsi les coordonnées x, y, z de M sont CdM[0, CdM[1] et CdM[2], ce qui donne :

kI (de (MN) : I = M+kI*(N-M)

(((CdN[1]-CdM[1])*CdP[1]-CdM[1]*CdN[1]+CdM[1]^2+(CdN[0]-CdM[0])*CdP[0]-CdM[0]*CdN[0]+CdM[0]^2)*CdQ[2]^2+(((CdM[1]-CdN[1])*CdQ[1]+(CdM[1]-CdN[1])*CdP[1]+2*CdM[1]*CdN[1]-2*CdM[1]^2+(CdM[0]-CdN[0])*CdQ[0]+(CdM[0]-CdN[0])*CdP[0]+2*CdM[0]*CdN[0]-2*CdM[0]^2)*CdP[2]+((CdM[1]-CdP[1])*CdQ[1]+CdP[1]^2-CdM[1]*CdP[1]+(CdM[0]-CdP[0])*CdQ[0]+CdP[0]^2-CdM[0]*CdP[0])*CdN[2]+((CdP[1]+CdN[1]-2*CdM[1])*CdQ[1]-CdP[1]^2+(2*CdM[1]-CdN[1])*CdP[1]+(CdP[0]+CdN[0]-2*CdM[0])*CdQ[0]-CdP[0]^2+(2*CdM[0]-CdN[0])*CdP[0])*CdM[2])*CdQ[2]+((CdN[1]-CdM[1])*CdQ[1]-CdM[1]*CdN[1]+CdM[1]^2+(CdN[0]-CdM[0])*CdQ[0]-CdM[0]*CdN[0]+CdM[0]^2)*CdP[2]^2+((CdQ[1]^2+(-CdP[1]-CdM[1])*CdQ[1]+CdM[1]*CdP[1]+CdQ[0]^2+(-CdP[0]-CdM[0])*CdQ[0]+CdM[0]*CdP[0])*CdN[2]+(-CdQ[1]^2+(CdP[1]-CdN[1]+2*CdM[1])*CdQ[1]+(CdN[1]-2*CdM[1])*CdP[1]-CdQ[0]^2+(CdP[0]-CdN[0]+2*CdM[0])*CdQ[0]+(CdN[0]-2*CdM[0])*CdP[0])*CdM[2])*CdP[2]+(-CdQ[1]^2+2*CdP[1]*CdQ[1]-CdP[1]^2-CdQ[0]^2+2*CdP[0]*CdQ[0]-CdP[0]^2)*CdM[2]*CdN[2]+(CdQ[1]^2-2*CdP[1]*CdQ[1]+CdP[1]^2+CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdM[2]^2+((CdN[0]-CdM[0])*CdP[0]-CdM[0]*CdN[0]+CdM[0]^2)*CdQ[1]^2+(((CdM[0]-CdN[0])*CdQ[0]+(CdM[0]-CdN[0])*CdP[0]+2*CdM[0]*CdN[0]-2*CdM[0]^2)*CdP[1]+((CdM[0]-CdP[0])*CdQ[0]+CdP[0]^2-CdM[0]*CdP[0])*CdN[1]+((CdP[0]+CdN[0]-2*CdM[0])*CdQ[0]-CdP[0]^2+(2*CdM[0]-CdN[0])*CdP[0])*CdM[1])*CdQ[1]+((CdN[0]-CdM[0])*CdQ[0]-CdM[0]*CdN[0]+CdM[0]^2)*CdP[1]^2+((CdQ[0]^2+(-CdP[0]-CdM[0])*CdQ[0]+CdM[0]*CdP[0])*CdN[1]+(-CdQ[0]^2+(CdP[0]-CdN[0]+2*CdM[0])*CdQ[0]+(CdN[0]-2*CdM[0])*CdP[0])*CdM[1])*CdP[1]+(-CdQ[0]^2+2*CdP[0]*CdQ[0]-CdP[0]^2)*CdM[1]*CdN[1]+(CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdM[1]^2)/((CdN[1]^2-2*CdM[1]*CdN[1]+CdM[1]^2+CdN[0]^2-2*CdM[0]*CdN[0]+CdM[0]^2)*CdQ[2]^2+((-2*CdN[1]^2+4*CdM[1]*CdN[1]-2*CdM[1]^2-2*CdN[0]^2+4*CdM[0]*CdN[0]-2*CdM[0]^2)*CdP[2]+((2*CdM[1]-2*CdN[1])*CdQ[1]+(2*CdN[1]-2*CdM[1])*CdP[1]+(2*CdM[0]-2*CdN[0])*CdQ[0]+(2*CdN[0]-2*CdM[0])*CdP[0])*CdN[2]+((2*CdN[1]-2*CdM[1])*CdQ[1]+(2*CdM[1]-2*CdN[1])*CdP[1]+(2*CdN[0]-2*CdM[0])*CdQ[0]+(2*CdM[0]-2*CdN[0])*CdP[0])*CdM[2])*CdQ[2]+(CdN[1]^2-2*CdM[1]*CdN[1]+CdM[1]^2+CdN[0]^2-2*CdM[0]*CdN[0]+CdM[0]^2)*CdP[2]^2+(((2*CdN[1]-2*CdM[1])*CdQ[1]+(2*CdM[1]-2*CdN[1])*CdP[1]+(2*CdN[0]-2*CdM[0])*CdQ[0]+(2*CdM[0]-2*CdN[0])*CdP[0])*CdN[2]+((2*CdM[1]-2*CdN[1])*CdQ[1]+(2*CdN[1]-2*CdM[1])*CdP[1]+(2*CdM[0]-2*CdN[0])*CdQ[0]+(2*CdN[0]-2*CdM[0])*CdP[0])*CdM[2])*CdP[2]+(CdQ[1]^2-2*CdP[1]*CdQ[1]+CdP[1]^2+CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdN[2]^2+(-2*CdQ[1]^2+4*CdP[1]*CdQ[1]-2*CdP[1]^2-2*CdQ[0]^2+4*CdP[0]*CdQ[0]-2*CdP[0]^2)*CdM[2]*CdN[2]+(CdQ[1]^2-2*CdP[1]*CdQ[1]+CdP[1]^2+CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdM[2]^2+(CdN[0]^2-2*CdM[0]*CdN[0]+CdM[0]^2)*CdQ[1]^2+((-2*CdN[0]^2+4*CdM[0]*CdN[0]-2*CdM[0]^2)*CdP[1]+((2*CdM[0]-2*CdN[0])*CdQ[0]+(2*CdN[0]-2*CdM[0])*CdP[0])*CdN[1]+((2*CdN[0]-2*CdM[0])*CdQ[0]+(2*CdM[0]-2*CdN[0])*CdP[0])*CdM[1])*CdQ[1]+(CdN[0]^2-2*CdM[0]*CdN[0]+CdM[0]^2)*CdP[1]^2+(((2*CdN[0]-2*CdM[0])*CdQ[0]+(2*CdM[0]-2*CdN[0])*CdP[0])*CdN[1]+((2*CdM[0]-2*CdN[0])*CdQ[0]+(2*CdN[0]-2*CdM[0])*CdP[0])*CdM[1])*CdP[1]+(CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdN[1]^2+(-2*CdQ[0]^2+4*CdP[0]*CdQ[0]-2*CdP[0]^2)*CdM[1]*CdN[1]+(CdQ[0]^2-2*CdP[0]*CdQ[0]+CdP[0]^2)*CdM[1]^2)

Exemple 4 : Thalès général en 3D

Ce n’est bien entendu pas au programme du collège, mais on peut le montrer dans d’autres classes. La figure suivante est utilisée en L2, autour du thème des homothéties-translations.

le théorème de Thalès est vrai en général dans l’espace, et peut s’exprimer , sur la base de trois plans parallèles, sous la forme de l’indépendance (par raport à la droite $(AA_1)$ du coefficient de colinéarité $k$ dans la relation : $\overrightarrow{AA_2}=k.\overrightarrow{AA_1}$, ce coefficient $k$ ne dépend que de la position des trois plans parallèles , ce que l’on vérifie sur cette figure :


Préférer ouvrir cette figure https://lc.cx/Thales3D dans un nouvel onglet.

Cette figure est entièrement construite sur la base de la vibration car les longueurs des segments sont calculées par vibration. La construction des points $A_2$ et $B_2$ est purement affine, bien entendu indépendante du résultat ...

Précision sur la construction affine des points A2 et B2

L’illustration (copie d’écran) parle d’elle-même : on utilise un parallélogramme (OB« O2O), puis une homothétie - de centre B qui envoie B’ sur B », ou simplement des propriétés d’incidence des droites et des plans, selon la classe où on présente cette figure :

Exemple 5 : Isométrie du plan de l’écran dans un plan de l’espace

Pour construire une figure plane dans un plan de l’espace, une façon simple est de construire les éléments de base en vraie grandeur en 2D, « dans le plan de l’écran », puis de faire la figure usuelle en 2D et de renvoyer, par transformation affine, sur le plan de l’espace ce qui est nécessaire à la figure finale. La transformation affine étant isométrique, c’est une isométrie, et donc la figure sera euclidiennement correcte dans le plan image.

Voyons l’exemple d’une figure réalisée à partir d’un triangle de l’espace. Pour cela on se donne trois points de l’espace, par exemple sur trois faces d’un cube.

On se propose d’illustrer le théorème de Feuerbach sur le triangle ABD dans le plan (ABC). Au moins construire les cercles inscrit, exinscrits et d’Euler.

Pour cela on commence par mesurer les vraies grandeur de AB, BC et CA, par vibration.

On construit ensuite le triangle en vraie grandeur dans le plan. Pour cela on prend des cercles de rayon fixe :

Et, par la calculatrice, on donne aux cercles les rayons voulus, ci-dessous la longueur AB pour le premier cercle :

(AB est le nom de l’expression renvoyé par la macro Distance3D, pas seulement son commentaire)

On poursuit la figure en 2D :

Ensuite il suffit d’envoyer sur la figure 3D l’image d’un point de chaque cercle et d’en faire les lieux pour avoir directement les cercles voulus du plan (ABC).

La figure Feuerbach3D manipulable par A, B, C et la rotation du repère

Préférer ouvrir cette figure https://lc.cx/Feuerbach3D dans un nouvel onglet.

Compléments de mise à jour

Le logiciel a beaucoup évolué depuis l’écriture de cet article réalisé au tout début de la mise en ouevre de la 3D. Voici par exemple une figure sur la pseudosphère (géométrie hyperbolique) : le cercle circonscrit d’un triangle

Préférer ouvrir cette figure https://lc.cx/PS_Ccirc_base dans un nouvel onglet.

Dans cette figure, on déplace les sommets du triangle A, B, C
par leurs latitudes uA, uB, uC et leurs longitude (les points A,B C eux-mêmes)

Evolutions diverses depuis cet article

L’auteur de cet article a, depuis, développé un site sur les géométries non euclidiennes en général avec, en particulier, trois modèles 3D hyperboliques où la construction de cette figure est détaillée : curvica974.re. On peut aussi consulter une présentation de ce site dans cet article de MathémaTICE.

Pour plus de détails sur l’évolution de DGPad, on consultera, dans MathémaTICE, des articles plus récents comme :

L’introduction de Blockly

La tortue de DGPad qui renouvelle totalement l’utilisation de la 3D dans le logiciel (2016)

Ces articles donnent aussi les liens pour télécharger des versions récents du logiciel dont des versions « desktop » réalisées à partir de 2020 pour Linux, Windows et MacOS.

Exemple d’utilisation de la tortue 3D de DGPad  : 5 patrons du ballon de foot


Vous pouvez déployer le patron ou en changer avec les curseurs. Le déplacement du ballon se fait simplement à la souris.

Préférer ouvrir cette figure https://lc.cx/Ballon_5PatAnim dans un nouvel onglet.

Dans ce cas pour agir sur l’orientation générale du ballon il faut être en « mode consultation », aucun outil du tableau de bord activé.