(************************************************
                 Hugo Eti‚vant
     http://www.multimania.com/cyberzoide/
      e-mail : cyberzoide@multimania.com
      (pour une aide en Turbo Pascal 7.0)
*************************************************
 Segment de Bresenham avec antialiasing.
 Attention aux figures de moir‚ qui apparaŚssent
 pour des segments trŠs proches.
************************************************)

uses graph;

procedure ligne2(x1,y1,x2,y2,c:integer);
var x,y:integer;
    e,m:real;
begin
y:=y1;
m:=(y2-y1)/(x2-x1+1e-5);
e:=0;         { e = intensit‚ de couleur varie entre 0 et 1 }
for x:=x1 to x2 do
    begin
    e:=e+m;
    if e>=1 then
       begin
       e:=e-1;
       y:=y+1;
       end;
    putpixel(x,y+1,round(e*(c-1)));
    putpixel(x,y,round(c-1-e*(c-1)));
    end;
end;

var mode,pilote,i:integer;
begin
pilote:=detect;
initgraph(mode,pilote,'c:\bp\bgi');
for i:= 0 to 479 do ligne2(0,0,639,i,30);
for i:= 0 to 479 do ligne2(0,i,639,479,30);
readln;
end.