http://www.perlmonks.org?node_id=288796


in reply to LineDraw Japh

The straight line drawing algorithm. Each number in the list holds information of x,y coordinates and gradient information. The format is x1,y1,x2,y2. I have modified this program to draw a little house ... :-D

for (589840,117506056,134225920,671555840,534280,1058576,654911248,151718157,269160461,168496907,168627981){($x,$y,$v,$w)=unpack"c*",pack"l",$_;$e=$v-$x;$g=$w-$y;$h=abs$e;$k=abs$g;$d=$h>$k;for(0..(($d)?$h:$k)){$f+=$d?$g/$e:$e/$g;$f1=$f;int$f&&do{$y+=$d?$g>0?1:-1:0;$x+=$d?0:$e>0?1:-1;$f+=$f>0?-1:1};$c$y||=' 'x 60;substr($c$y,$x+1,1)=abs$f1>=1?$f1>0?"\\":"/":$d?"-":"|"; $d?($x+=$e>0?1:-1):($y+=$g>0?1:-1);}};$"="\n";print"@c";