Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: LineDraw Japh

by Roger (Parson)
on Sep 04, 2003 at 05:32 UTC ( #288796=note: print w/ replies, xml ) Need Help??


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";


Comment on Re: LineDraw Japh
Re: Re: LineDraw Japh
by Roger (Parson) on Sep 05, 2003 at 00:46 UTC
    Opps, the code I posted earlier confused the HTML syntax. Here's the complete code reposted...

    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\n"; __END__ The following is the picture data in heximal format, Each number is x1,y1,x2,y2. 0x00090010, 0x07010008, 0x08002000, 0x28072100, 0x00082708, 0x00102710, 0x27092710, 0x090B090D, 0x100B100D, 0x0A0B0F0B, 0x0A0D0F0D

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://288796]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2014-11-23 05:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (128 votes), past polls