in reply to Wrong output on linux, ok on Win32
Animate it ;-)
#!/usr/bin/perl use Term::Cap; $t= Tgetent Term::Cap; $t=$t->Tgoto('cm', 0, 0); for$i(1..shift){ print $t; map{ $a=1-$_/10; map{ $d=$a; $e=$b=$_/20-2; map{ ($d,$e)=(2*$d*$e+$a,$e**2-$d**2+$b); $c=$d**2+$e**2>4?_:0 }1..$i; print$c }0..59; print$/ }0..20; }
Try perl mandel.pl 13. If I pass 99, there'll be a block of zeroes at the end.
<update>
It's not an overflow issue. As the area delimiting the mandelbrot converges to a line with increased iterations over the inner loop, there's not enough resolution to draw it. You can skip the outer area exiting the inner loop as soon as $d**2+$e**2>4
map{ $a=1-$_/10; map{ $d=$a; $e=$b=$_/20-2; for(1..99){ ($d,$e)=(2*$d*$e+$a,$e**2-$d**2+$b); $c=$d**2+$e**2>4?_:0; last if $c eq _ } print$c }0..59; print$/ }0..20;
I wonder how that works on your windows box, though.
</update>
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Wrong output on linux, ok on Win32
by liverpole (Monsignor) on Nov 30, 2006 at 19:07 UTC | |
|
Re^2: Wrong output on linux, ok on Win32
by Melly (Chaplain) on Nov 30, 2006 at 16:49 UTC | |
|
Re^2: Wrong output on linux, ok on Win32
by Melly (Chaplain) on Dec 01, 2006 at 10:56 UTC |