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;