{**********************************************************************}
{ Drawing line with brute force algorithm }
{**********************************************************************}
procedure slow_line(x0, y0, x1, y1, color:integer);
var
i,x,y : integer;
l : longint;
begin
{--- Draw degenerate line (pixel) }
if (x0 = x1) and (y0 = y1) then
pixel_write(x0,y0,color)
{--- Draw lines with dx > dy }
else if abs(x1-x0) >= abs(y1-y0) then
begin
if x1<x0 then
begin
x := x1; { Swap end points }
y := y1;
x1 := x0;
y1 := y0;
x0 := x;
y0 := y;
end;
for x := x0 to x1 do
begin { Loop over x coord, computing y}
l := longint(y1 - y0) * longint(x - x0);
l := l div longint(x1 - x0);
y := y0 + integer(l);
pixel_write(x,y,color); { Draw next point }
end;
end
{--- Draw lines with dy > dx }
else begin
if y1<y0 then
begin { Swap end points }
x := x1;
y := y1;
x1 := x0;
y1 := y0;
x0 := x;
y0 := y;
end;
for y := y0 to y1 do
begin { Loop over y coord, computing x}
l := longint(y - y0) * longint(x1 - x0);
l := l div longint(y1 - y0);
x := x0 + integer(l);
pixel_write(x,y,color); { Draw next point }
end;
end;
end;