%prologues:=2;
input geometriesyr16;
input TEX;

string pos,sol,style,affichagesolu,affichageval;

style="hachures";
affichagesolu="non";
affichageval="oui";

%Macro pour représenter graphiquement les solutions d'une inéquation
vardef soline(expr valeur,ang,couleur)=
  save $;
  picture dep,$;
  pair ww;
  y.u:=5mm;
  dep=image(
    drawarrow (xpart(z.so),ypart(placepoint(0,0)))
    --(xpart(z.ne*cm),ypart(placepoint(0,0))) withpen pencircle scaled 2bp;
    graduantx.bot;
    pair O;
    O=placepoint(0,0);
    marque_p:="plein";
    pointe(O);
    label.bot(btex $O$ etex,O);
    );
  $=image(
    trace dep;
    ww=placepoint(valeur,0);
    pointe(ww);
    marque_p:="non";
    if pos="inf":
      if style="hachures":
	draw hachurage(placepoint(valeur,0.4)--placepoint(valeur,-0.4)--
	  (xpart(z.ne),ypart(placepoint(0,-0.4)))--
	  (xpart(z.ne),ypart(placepoint(0,0.4)))--cycle,ang,0.3,0)
	withcolor couleur
      elseif style="repasse":
	draw (x.so*cm,ypart(placepoint(0,0)))--(placepoint(valeur,0))
	withpen pencircle scaled 2bp withcolor couleur
      fi;
      if sol="non":
	if style="hachures":
	  draw placepoint(valeur+0.3,0.5)--placepoint(valeur,0.5)--
	  placepoint(valeur,-0.5)--placepoint(valeur+0.3,-0.5)
	  withpen pencircle scaled 2bp withcolor couleur
	else:
	  draw placepoint(valeur+0.3,0.5)--placepoint(valeur,0.5)--
	  placepoint(valeur,-0.5)--placepoint(valeur+0.3,-0.5)
	  withpen pencircle scaled 2bp
	fi;
      elseif sol="oui":
	draw placepoint(valeur-0.3,0.5)--placepoint(valeur,0.5)
	--placepoint(valeur,-0.5)--placepoint(valeur-0.3,-0.5)
	withpen pencircle scaled 2bp withcolor couleur
      fi;
      if affichagesolu="non":
	long:=abs((xpart(z.ne),ypart(placepoint(0,-0.4)))-
	  placepoint(valeur,-0.4));
	label.bot(TEX("$\underbrace{\hbox to"&
	    decimal(long)&"pt{}}_{\hbox{Ce qui ne convient pas}}$"),
	  iso(placepoint(valeur,-0.4),(xpart(z.ne),
	      ypart(placepoint(0,-0.4)))));
      elseif affichagesolu="oui":
	long:=abs((xpart(z.so),ypart(placepoint(0,-0.4)))-
	  placepoint(valeur,-0.4));
	label.bot(TEX("$\underbrace{\hbox to"&
	    decimal(long)&"pt{}}_{\hbox{Nombres solutions}}$"),
	  iso(placepoint(valeur,-0.4),(xpart(z.so),
	      ypart(placepoint(0,-0.4)))));
      fi;
      if affichageval="oui":
	label.top(TEX("$"&decimal(valeur)&"$"),placepoint(valeur,0.5));
      fi;
    elseif pos="sup":
      if style="hachures":
	draw hachurage(placepoint(valeur,0.4)--placepoint(valeur,-0.4)
	  --(xpart(z.so),ypart(placepoint(0,-0.4)))--
	  (xpart(z.so),ypart(placepoint(0,0.4)))--cycle,ang,0.3,0)
	withcolor couleur
      elseif style="repasse":
	draw placepoint(valeur,0)--(x.ne*cm,ypart(placepoint(0,0)))
	withpen pencircle scaled 2bp withcolor couleur
      fi;
      if sol="non":
	if style="hachures":
	  draw placepoint(valeur-0.3,0.5)--placepoint(valeur,0.5)--
	  placepoint(valeur,-0.5)--placepoint(valeur-0.3,-0.5) 
	  withpen pencircle scaled 2bp withcolor couleur
	else:
	  draw placepoint(valeur-0.3,0.5)--placepoint(valeur,0.5)--
	  placepoint(valeur,-0.5)--placepoint(valeur-0.3,-0.5)
	  withpen pencircle scaled 2bp
	  fi;
      elseif sol="oui":
	draw placepoint(valeur+0.3,0.5)--placepoint(valeur,0.5)
	--placepoint(valeur,-0.5)--placepoint(valeur+0.3,-0.5)
	withpen pencircle scaled 2bp withcolor couleur
      fi;
      if affichagesolu="non":
	long:=abs((x.so*cm,ypart(placepoint(0,-0.4)))-
	  placepoint(valeur,-0.4));
	label.bot(TEX("$\underbrace{\hbox to"&
	    decimal(long)&"pt{}}_{\hbox{Ce qui ne convient pas}}$"),
	  iso(placepoint(valeur,-0.4),(x.so*cm,
	      ypart(placepoint(0,-0.4)))));
      elseif affichagesolu="oui":
	long:=abs((x.ne*cm,ypart(placepoint(0,-0.4)))-
	  placepoint(valeur,-0.4));
	label.bot(TEX("$\underbrace{\hbox to"&
	    decimal(long)&"pt{}}_{\hbox{Nombres solutions}}$"),
	  iso(placepoint(valeur,-0.4),(x.ne*cm,
	      ypart(placepoint(0,-0.4)))));
      fi;
      if affichageval="oui":
	label.top(TEX("$"&decimal(valeur)&"$"),placepoint(valeur,0.5));
      fi;
    fi;
    );
  $
enddef;

figure(0,-0.5cm,5cm,1.5cm);
trace feuillet withcolor blanc;
x.u:=5mm;
quad.u:=0.5*cm;
origine((2,1));
pos:="sup";
sol:="oui";
draw soline(5,120,bleu);
fin;
figure(0,-0.5cm,5cm,1.5cm);
trace feuillet withcolor blanc;
x.u:=5mm;
quad.u:=0.5*cm;
origine((2,1));
pos:="inf";
sol:="oui";
draw soline(5,60,orange);
fin;
figure(0,-0.5cm,10cm,1.5cm);
trace feuillet withcolor blanc;
x.u:=5mm;
quad.u:=0.5*cm;
origine((12,1));
pos:="sup";
sol:="oui";
draw soline(-5,120,bleu);
fin;
style:="repasse";
figure(0,-0.5cm,8cm,1.5cm);
trace feuillet withcolor blanc;
x.u:=5mm;
quad.u:=0.5*cm;
origine((12,1));
pos:="sup";
sol:="non";
draw soline(-3,120,bleu);
fin;
style:="repasse";
affichagesolu:="oui";
figure(0,-0.5cm,10cm,1.5cm);
trace feuillet withcolor blanc;
x.u:=5mm;
quad.u:=0.5*cm;
origine((8,1));
pos:="sup";
sol:="oui";
draw soline(5,120,bleu);
fin;
end
