Comme déjà signalé, les points doivent être définis comme des couleurs. Seule la commande
iso(A,B,C,...);
pour obtenir l'isobarycentre des points de l'espace A, B, C,... a été adapté au tracé spatial.
exemple4.mp [ source brut ]
input geometriesyr16;
figureespace(-10u,-10u,10u,10u); Initialisation(5,30,20,600); color A,B,C,D,E,F,G,H,I,J,K; trace Cube(A,B,C,D,E,F,G,H); nomme.llft(A);nomme.lrt(B); nomme.rt(C);nomme.ulft(D); nomme.top(E);nomme.top(F); nomme.ulft(G);nomme.top(H); I=iso(A,B); J=iso(A,D,E); K=iso(B,C,H,G); marque_p:="plein"; nomme.bot(I);nomme.top(J); nomme.top(K); finespace; end
On dispose de définitions propres à la 3e dimension :
IntersectionDroite(A,B,C,D)
pour obtenir l'intersection des droites (AB) et (CD).IntersectionPlanDroite(A,B,C,D,E)
qui construit le point d'intersection (un test est fait pour justifier de l'existence) du plan (ABC) avec la droite (DE).ProjectionsurPlan(A,B,C,D)
pour obtenir le projeté orthogonal de A sur le plan (BCD).exemple5.mp [ source brut ]
%Projection d'un point sur un plan. Tétraèdre trirectangle input geometriesyr16;
figureespace(-10u,-10u,10u,10u); Initialisation(5,10,25,500); color A,B,C,O,H,K; O=(0,0,0); A=(1,0,0); B=(0,1.5,0); C=(0,0,1.25); H=ProjectionsurPlan(O,A,B,C); K=IntersectionDroite(C,H,A,B); trace polygone(A,B,C); trace segment(C,K); trace chemin(A,O,C) dashed evenly; trace segment(O,B) dashed evenly; trace chemin(K,O,H) dashed evenly; trace codeperp(O,H,C,8); trace codeperp(C,K,B,10); trace codeperp(O,K,B,8); finespace; endfig; end
Pour un dessin de géométrie dans l'espace, la seule façon d'obtenir un cercle avec ce package est d'utiliser la macro
cercles(A,B,O,C,D)
Cela correspond au tracé du cercle de centre A et passant par B dans le plan (OCD) où les vecteurs OC et OD sont des vecteurs orthogonaux. Ils seront ensuite normés par la macro.
exemple6.mp [ source brut ]
input geometriesyr16;
figureespace(-10u,-10u,10u,10u); Initialisation(5,30,20,600); color A,B,C,D,E,F,G,H; trace Cube(A,B,C,D,E,F,G,H); nomme.llft(A); nomme.lrt(B); nomme.rt(C); nomme.ulft(D); nomme.top(E); nomme.top(F); nomme.ulft(G); nomme.top(H); trace cercles(B,A,B,C,A) dashed evenly; trace cercles(D,B,D,B,E) dashed dashpattern(on 12bp off6bp on3bp off6bp); finespace; endfig; end
Les constructions classiques sont disponibles :
trace segment(A,B); trace demidroite(A,B); trace droite(A,B);
On dispose aussi d'une construction propre à la géométrie spatiale
IntersectionPlanPlan(A,B,C,D,E,F)
qui, je crois, porte bien son nom pour obtenir l'intersection (un test est fait pour vérifier l'existence) des plans (ABC) et (DEF). Voici un exemple déjà donné.
exemple7.mp [ source brut ]
input geometriesyr16;
figureespace(-5u,-5u,6.5u,6u); Initialisation(5,30,20,700); color A,B,C,D,E,F,G,H,I,J,K; trace Cube(A,B,C,D,E,F,G,H); nomme.llft(A); nomme.lrt(B); nomme.rt(C); nomme.ulft(D); nomme.top(E); nomme.top(F); nomme.ulft(G); nomme.top(H); I=1/2[A,B]; J=1/2[B,C]; K=1/2[E,D]; path cc; cc=buildcycle(IntersectionPlanPlan(I,J,K,A,B,C), IntersectionPlanPlan(J,K,I,B,C,H), IntersectionPlanPlan(K,J,I,C,D,E), IntersectionPlanPlan(J,K,I,F,E,D), IntersectionPlanPlan(J,K,I,A,F,B)); trace cc withcolor orange; marque_p:="plein"; nomme.bot(I); nomme.bot(J); nomme.urt(K); finespace; end
On peut utiliser l'addition de couleurs pour la translation et une commande telle 2[A,O] pour obtenir le symétrique de A par rapport au point O.
Voici la liste des codages disponibles, ils sont tous à utiliser avec la commande trace. Ce ne sont pas les seuls mais, actuellement, ce sont les seuls compatibles avec le tracé spatial.
exemple8.mp [ source brut ]
input geometriesyr16;
figureespace(-10u,-10u,10u,10u); Initialisation(5,30,20,600); color A,B,C,D,E,F,G,H; trace Cube(A,B,C,D,E,F,G,H); trace codeperp(A,B,C,10); trace codeperp(B,A,F,8); trace codeperp(A,D,E,8); trace Codelongueur(A,B,B,C,C,D,D,A,2); trace chemin(E,A,C); finespace; end
L'hachurage est toujours présent et seule la macro appelation(A,B,2mm,btex nom etex) a été adaptée.
Il existe aussi la macro Cube(A,B,C,D,E,F,G,H) dont il a déjà été fait usage dans les exemples précédents.
Il faudrait implanter les coordonnées sphériques, les arcs de cercles, quelques solides (pyramide et pavé), le dessin de plan, et certainement d'autres choses auxquelles je ne pense pas.
[Suite...]