dot(p);
dot(q);
if |x1-x2| > 1 or |y1-y2| > 1 then
draw(p,(p+q)/2);
draw((p+q)/2,q);
m=(y2-y1)/(x2-x1); b=y1-m*x1
y-y1=m(x-x1)
y=m*x+y1-m*x1 x -> x+1
=m*x+b y -> y+m
y:=y1;
for x:=x1 to x2 do
dot(x,round(y));
y:=y+m;