3 vardef grillexy(expr aa,bb,cc,dd)=
6 color Fc[][];color G[][];
18 Fc[apj][2]:=G[l][k+1];
19 Fc[apj][3]:=G[l+1][k+1];
20 Fc[apj][4]:=G[l+1][k];
21 Fc[apj][5]:=(Fc[apj][1]+Fc[apj][2]+Fc[apj][3]+Fc[apj][4])/4;
22 ALT[apj]:=-Zpart(GCoord(Fc[apj][1]));
29 Projette(Fc[cpt[k]][l])--
31 cycle withcolor if arcenciel: Hsvtorgb(((k/apj)[0*360,1*360],0.5,0.5))
34 Projette(Fc[cpt[k]][l])--
36 cycle withpen pencircle scaled0.25bp;
42 vardef grillexz(expr aa,bb,cc,dd)=
45 color Fc[][];color G[][];
48 G[l][k]=(k/10,0,l/10);
57 Fc[apj][2]:=G[l][k+1];
58 Fc[apj][3]:=G[l+1][k+1];
59 Fc[apj][4]:=G[l+1][k];
60 Fc[apj][5]:=(Fc[apj][1]+Fc[apj][2]+Fc[apj][3]+Fc[apj][4])/4;
61 ALT[apj]:=-Zpart(GCoord(Fc[apj][1]));
68 Projette(Fc[cpt[k]][l])--
70 cycle withcolor if arcenciel: Hsvtorgb((180,(cpt[k]/apj)[0,1],(cpt[k]/apj)[0,1]))
77 vardef grilleyz(expr aa,bb,cc,dd)=
80 color Fc[][];color G[][];
83 G[l][k]=(0,k/10,l/10);
92 Fc[apj][2]:=G[l][k+1];
93 Fc[apj][3]:=G[l+1][k+1];
94 Fc[apj][4]:=G[l+1][k];
95 Fc[apj][5]:=(Fc[apj][1]+Fc[apj][2]+Fc[apj][3]+Fc[apj][4])/4;
96 ALT[apj]:=-Zpart(GCoord(Fc[apj][1]));
103 Projette(Fc[cpt[k]][l])--
105 cycle withcolor if arcenciel: Hsvtorgb((120,(cpt[k]/apj)[0,1],(cpt[k]/apj)[0,1]))
112 vardef grillecirc(expr aa,bb)=
115 color Fc[][];color G[][];
116 for l=aa step 5 until bb:%upto bb:
118 G[l][k]=((k/10)*3*cosd(l),(k/10)*3*sind(-l),2);
122 for l=aa step 5 until (bb-5):
127 Fc[apj][2]:=G[l][k+1];
128 Fc[apj][3]:=G[l+5][k+1];
129 Fc[apj][4]:=G[l+5][k];
130 Fc[apj][5]:=(Fc[apj][1]+Fc[apj][2]+Fc[apj][3]+Fc[apj][4])/4;
131 ALT[apj]:=-Zpart(GCoord(Fc[apj][1]));
138 Projette(Fc[cpt[k]][l])--
140 cycle withcolor if arcenciel: Hsvtorgb((aa+180,(cpt[k]/apj)[0,1],1))
147 vardef tranche(expr aa,bb)=
150 color Fc[][];color G[][];
151 for l=aa step 5 until bb:
153 G[l][k]=(3*cosd(l),3*sind(-l),2*k/10);
157 for l=aa step 5 until (bb-5):
162 Fc[apj][2]:=G[l][k+1];
163 Fc[apj][3]:=G[l+5][k+1];
164 Fc[apj][4]:=G[l+5][k];
165 Fc[apj][5]:=(Fc[apj][1]+Fc[apj][2]+Fc[apj][3]+Fc[apj][4])/4;
166 ALT[apj]:=-Zpart(GCoord(Fc[apj][1]));
173 Projette(Fc[cpt[k]][l])--
175 cycle withcolor if arcenciel: Hsvtorgb((aa+180,1,(cpt[k]/apj)[0,1]))
182 figureespace(-10u,-10u,10u,10u);
183 Initialisation(500,45,20,50);
185 for k=90 step 5 until 265:
188 for k=0 step 5 until 40:
191 draw grillexz(0,20,0,30);
192 draw grilleyz(0,20,0,30);
193 for k=0 step 5 until 265:
194 draw grillecirc(k,k+5);
196 drawarrow Projette((0,0,1))--Projette((0,3,1)) withpen pencircle scaled 2bp;
197 label.top(btex Saturation etex rotated(angle(Projette((0,3,1))-Projette((0,0,1)))),Projette((0,1.5,1)));
198 drawarrow Projette((3.2*cosd(240),3.2*sind(-240),0))--Projette((3.2*cosd(240),3.2*sind(-240),2)) withpen pencircle scaled 2bp;
199 label.rt(btex Valeur etex rotated(angle(Projette((3.2*cosd(240),3.2*sind(-240),0))-Projette((3.2*cosd(240),3.2*sind(-240),2)))),Projette((3.2*cosd(240),3.2*sind(-240),1)));
200 drawarrow Projette((3.2*cosd(-30),3.2*sind(30),1.8))..Projette(((3.2*cosd(10),3.2*sind(-10),1.8)))..Projette(((3.2*cosd(20),3.2*sind(-20),1.8)))..Projette(((3.2*cosd(30),3.2*sind(-30),1.8))) withpen pencircle scaled 2bp;
201 label.bot(btex Teinte etex rotated angle(Projette(((3.2*cosd(-30),3.2*sind(30),1.8)))-Projette((3.2*cosd(30),3.2*sind(-30),1.8))),Projette(((3.2*cosd(0),3.2*sind(0),1.8))));