%@Auteur:Thomas Rey
prologues := 2;

input geometriesyr16;

figure(-3.8u,-3.7u,7.2u,7.3u);%1
pair A,B,C,D,E,F,G,H;
%%% les points de base :
A=(0,0);
B=(3u,0);
C=(4u,.7u);
E=(0,3u);
%%% les autres :
D-A=C-B;

F-E=B-A;
G-F=C-B;
H-G=D-C;

trace A--B--C--G--H--E--F--G;
trace A--E;
trace B--F;
trace A--D--C dashed evenly;
trace D--H dashed evenly;

fin;

%%% 2
u:=1cm;
figure(-3.8u,-3.7u,7.2u,7.3u);
pair A,B,C,D,E,F,G,H;
%%% les points de base :
A=(0,0);
B=(3u,0);
C=(4u,.7u);
E=(0,3u);
%%% les autres :
D-A=C-B;

F-E=B-A;
G-F=C-B;
H-G=D-C;

trace A--B--C--G--F--B;
trace C--D dashed evenly;

fin;

%%% 3
u:=1cm;
figure(-3.8u,-3.7u,7.2u,7.3u);
pair A,B,C,D,E,F,G,H;
%%% les points de base :
A=(0,0);
B=(3u,0);
C=(3.7u,u);
E=(0,3u);
%%% les autres :
D-A=C-B;
F-E=B-A;
G-F=C-B;
H-G=D-C;

trace A--E;
trace A--D--C dashed evenly;
trace D--H dashed evenly;
fin;

%%%%%% 4
u:=1cm;
figure(-3.8u,-3.7u,7.2u,7.3u);%1
pair A,B,C,D,E,F,G,H;
%%% les points de base :
A=(0,0);
B=(3u,0);
C=(2u,.7u);
E=(0,3u);
%%% les autres :
D-A=C-B;
F-E=B-A;
G-F=C-B;
H-G=D-C;
trace D--A--B--F;
trace B--C--D dashed evenly;
fin;
%%%% fig 5 : l'ombre de la table (énoncé)
figure(-4.5u,-2u,10u,10u);
pair A,B,C,D,E,F,G,H,O,I,V,M;
A=(u,3u);
B=(5u,2.5u);
C=(6u,4u);
E=(u,.5u);
D-A=C-B;
F-B=E-A;
G-C=E-A;
H-D=E-A;
trace A--B--C--D--A withpen pencircle scaled 1.5bp;
trace A--E withpen pencircle scaled 1.5bp;
trace B--F withpen pencircle scaled 1.5bp;
trace C--G withpen pencircle scaled 1.5bp;
M-D=whatever*(D-H);
M-A=whatever*(B-A);
trace M--H withpen pencircle scaled 1.5bp;
trace D--M dashed evenly withpen pencircle scaled 1.5bp;
O=(-4u,u);
V=(-4u,5u);
I=(-1.5u,1.5u);
trace O--V withpen pencircle scaled 1.5bp;
trace O--I withpen pencircle scaled 1bp;
drawarrow (2V-I)--I dashed evenly;
nomme.bot(O);
nomme.bot(I);
nomme.lft(V);
nomme.lft(A);
nomme.rt(B);
nomme.top(C);
nomme.top(D);
nomme.lft(E);
nomme.rt(F);
nomme.rt(G);
nomme.rt(H);
fin;
%%% fig 6 : intersection
figure(-2u,-2u,10u,10u);
pair A,B,C,D,M,N,P;
numeric m,n,p;
A=(0,0);
B=(4u,-u);
C=(5u,u);
D=(2.5u,3u);
trace D--A--B--C--D--B;
trace A--C dashed evenly;
m=.4;
n=.65;
p=.5;
M-D=m*(A-D);
N-D=n*(B-D);
P-D=p*(C-D);
marque_p:="plein";
nomme.lft(M);
nomme.lft(N);
nomme.rt(P);
marque_p:="rien";
nomme.lft(A);
nomme.bot(B);
nomme.rt(C);
nomme.top(D);
fin;
%% fig 7 : pyramide sur cube
figure(-2u,-2u,5u,5u);
pair A,B,C,D,E,F,G,H;
numeric ang,r;% angle et rapport de la persp //
A=(0,0);
B=(3u,0);
E=(0,3u);
r=.5;
ang=30;
F-E=B-A;
C-B=r*(B-A) rotated ang;
D-C=A-B;
H-D=E-A;
G-C=E-A;
trace G--C--B--F--E--A--B withpen pencircle scaled 1bp;
trace E--H--G--F withpen pencircle scaled 1bp;
trace A--D--C dashed evenly withpen pencircle scaled 1bp;
trace H--D dashed evenly withpen pencircle scaled 1bp;
nomme.llft(A);
nomme.lrt(B);
nomme.rt(C);
nomme.rt(G);
nomme.ulft(F);
nomme.ulft(H);
nomme.ulft(E);
nomme.ulft(D);
fin;

% fig 8 : le cube perforé (la face frontale)
figure(-u,-u,7u,7u);
pair A,B,C,D,E,F,G,H;
path car;
A=(0,0);
B=(3.6u,0);
C=(3.6u,3.6u);
D=(0,3.6u);
car=A--B--C--D--cycle;
fillcolor:=blue;
transparence(car);
trace car withpen pencircle scaled 1bp;
E=(1.2u,1.2u);
F=(2.4u,1.2u);
G=(2.4u,2.4u);
H=(1.2u,2.4u);
car:=E--F--G--H--cycle;
remplis(car) withcolor white;
trace car withpen pencircle scaled 1bp;
fin;

% fig 9 : la fenêtre
figure(-u,-u,15u,10u);
pair A,B,C,D,O,Q,P,S,T,R,E;
Q=(0,0);
O=(0,7u);
P=(6u,9u);
S-P=Q-O;
T=(13u,6.5u);
R-T=S-P;
trace O--P--T--R--S--Q--O withpen pencircle scaled 1bp;
trace P--S withpen pencircle scaled 1bp;
A=(5u,7u);
B-A=.3*(O-P);
D-A=.25*(S-P);
C-D=B-A;
trace A--B--C--D--A withpen pencircle scaled 1.5bp;
E=(8u,5.5u);
drawarrow A--E withpen pencircle scaled 1.5bp dashed evenly;
label.top(btex A' etex, E);
nomme.top(P);
nomme.top(O);
nomme.bot(Q);
nomme.bot(S);
nomme.bot(R);
nomme.top(T);
nomme.top(A);
nomme.top(B);
nomme.bot(C);
nomme.bot(D);
fin;

% fig 10 : cercle tangent à une face de cube (bis)
figure(-2u,-2u,10u,10u);
pair A,B,C,D,E,F,G,H,I,M;
numeric ang,r;% angle et rapport de la persp //
A=(0,0);
B=(4u,0);
E=(0,4u);
r=.5;
ang=30;
F-E=B-A;
C-B=r*(B-A) rotated ang;
D-C=A-B;
H-D=E-A;
G-C=E-A;
trace G--C--B--F--E--A--B withpen pencircle scaled 1bp;
trace E--H--G--F withpen pencircle scaled 1bp;
trace A--D--C dashed evenly withpen pencircle scaled 1bp;
trace H--D dashed evenly withpen pencircle scaled 1bp;
I=.5*(A+F);
trace cercles(I,.5*(E+F)) withcolor blue;
trace (2u+2*cosd(40)*u,4u)--(2u+2*cosd(40)*u,0) withcolor blue;
trace (0,2u+2*sind(40)*u)--(4u,2u+2*sind(40)*u) withcolor blue;
fin;

%%%% fig 11 : cubes sur cube
figure(-2u,-2u,7u,7u);
pair A,B,C,D,E,F,G,H;
numeric ang,r;% angle et rapport de la persp //
A=(0,0);
B=(4u,0);
E=(0,4u);
r=2/3;
ang=30;
F-E=B-A;
C-B=r*(B-A) rotated ang;
D-C=A-B;
H-D=E-A;
G-C=E-A;
trace G--C--B--F--E--A--B withpen pencircle scaled 1bp;
trace E--H--G--F withpen pencircle scaled 1bp;
trace A--D--C dashed evenly withpen pencircle scaled 1bp;
trace H--D dashed evenly withpen pencircle scaled 1bp;

fin;

%%%% fig 12 : la fenêtre (bis)
figure(-u,-u,15u,10u);
pair A,B,C,D,O,Q,P,S,T,R,E;
Q=(0,u);
O=(0,7u);
P=(6u,9u);
S-P=Q-O;
T=(13u,6.5u);
R-T=S-P;
trace O--P--T--R--S--Q--O withpen pencircle scaled 1bp;
trace P--S withpen pencircle scaled 1bp;
A=(5u,7u);
B-A=.4*(O-P);
D-A=.25*(S-P);
C-D=B-A;
trace A--B--C--D--A withpen pencircle scaled 1.5bp;
E=(8u,4.5u);
drawarrow A--E withpen pencircle scaled 1.5bp dashed evenly;
label.top(btex A' etex, E);
nomme.top(P);
nomme.top(O);
nomme.bot(Q);
nomme.bot(S);
nomme.bot(R);
nomme.top(T);
nomme.top(A);
nomme.top(B);
nomme.bot(C);
nomme.bot(D);
fin;

end