{Un autre Algorythme de Breshenam pour dessiner des lignes en escalier.}
procedure toutil_ligne.ligne_escalier(dc:hdc; generate:boolean);
var i:integer;
dx,dy:integer;
commencement,suivant:tpoint;
nb_marche:integer;
begin
nb_marche:=u_object.PPR^.rec_Ligne_Symbole.nb_marche;
dx:=(point_actuel.x-point_depart.x) div nb_marche;
dy:=(point_actuel.y-point_depart.y) div nb_marche;
commencement:=point_depart;
for i:=1 to nb_marche do
begin
suivant.x:=commencement.x+dx;
suivant.y:=commencement.y+dy;
if generate then
begin
aforme^.elements^.insert(new(lignenodeptr,init(commencement.x-aforme^.x,suivant.y-aforme^.y)));
with suivant do
aforme^.elements^.insert(new(lignenodeptr,init(x-aforme^.x,y-aforme^.y)));
end
else
begin {dessin}
moveto(dc,commencement.x,commencement.y);
lineto(dc,commencement.x,suivant.y);
lineto(dc,suivant.x,suivant.y);
end; {dessin}
commencement:=suivant;
end;
end; {toutil_ligne.ligne_escalier}