Source
``````
input geometriesyr16;

figureespace(-10u,-10u,10u,10u);
Initialisation(5,22,20,500);
color A,B,C,D,S,Sol,pSol,pS,Hb,Bb;
A=(0,0,0);
B=(3/4,0,0);
C=(3/4,3/4,0);
D-C=A-B;
S=1/2[A,C]+(0,0,1);
path SOL;
color Sa,Sb,Sc,Sd;
Sb=B+(B-C)+(C-D);
Sc=C+2*(C-B)+(C-D);
Sd=D+2*(C-B)+(D-C);
Sa=A+(B-C)+(D-C);
SOL=Projette(Sb)..3/4[Projette(Sb),Projette(Sc)]..Projette(Sc)..1/3[Projette(Sc),%
Projette(Sd)]..3/4[Projette(Sc),Projette(Sd)]..Projette(Sd)..1/4[Projette(Sd),%
Projette(Sa)]..2/3[Projette(Sd),Projette(Sa)]..Projette(Sa)..cycle;
fillcolor:=0.8[jaune,white];
transparence SOL;
trace SOL;
remplis polygone(S,B,C,D) withcolor blanc;
pS=ProjectionsurPlan(S,A,B,C);
Sol=1/2[A,C]+1.5*(A-D)+(0,0,1.75);
pSol=ProjectionsurPlan(Sol,A,B,C);
marque_:=2*marque_r;
marque_p:="plein";
drawoptions(withcolor jaune);
pointe(Sol);
drawoptions();
marque_r:=marque_r/2;
pointe(pS);
marque_p:="rien";
NbS:=5;
Sommet1=A;
Sommet2=B;
Sommet3=C;
Sommet4=D;
Sommet5=S;
NF:=4;
Fc[100]:=4;Fc[101]:=3;Fc[102]:=2;Fc[103]:=1;Fc[104]:=4;
Fc[200]:=3;Fc[201]:=1;Fc[202]:=2;Fc[203]:=5;
Fc[300]:=3;Fc[301]:=2;Fc[302]:=3;Fc[303]:=5;
Fc[400]:=3;Fc[401]:=3;Fc[402]:=4;Fc[403]:=5;
Fc[500]:=3;Fc[501]:=4;Fc[502]:=1;Fc[503]:=5;
DessineObjet;
path rayon;
rayon=segment(Sol,IntersectionPlanDroite(A,B,C,Sol,S));
Hb=95/100[Sol,IntersectionPlanDroite(A,B,C,Sol,S)];
Bb=ProjectionsurPlan(Hb,A,B,C);
path baton;
baton=segment(Hb,Bb);
trace rayon withcolor orange;
trace baton withpen pensquare scaled 1.25bp;
trace segment(Bb,IntersectionPlanDroite(A,B,C,Sol,S)) withcolor gris;
trace chemin(Bb,pS,S) dashed evenly;
label.top(btex Soleil etex,Projette(Sol));
label.urt(btex \$S\$ etex,Projette(S));
label.top(btex \$B_1\$ etex,Projette(Hb));
label.bot(btex \$H\$ etex,Projette(pS));
label.bot(btex \$B\$ etex,Projette(Bb));
label.rt(btex \$O\$ etex,Projette(IntersectionPlanDroite(A,B,C,Sol,S)));
trace hachurage(polygone(D,C,IntersectionPlanDroite(A,B,C,Sol,S)),60,0.25,0);
finespace;

end``````