http://qs1969.pair.com?node_id=333005
Category: Miscellaneous
Author/Contact Info snowsmann
Michael Haas
snowsmann@yahoo.com
Description: This is an implementation of the "King's Dream" found in the book Chaos in Wonderland by Clifford A. Pickover. It is a complex algorithm to realize some aspects of chaos theory. It creates some very beautiful pictures and this program has three of the infinite possibilites of cool images produced. My program also allows the user to select the resolution and how many iterations to repeat the set of equations while drawing. Any comments or suggestions would be welcome. Anyone think of a good way to use colors to make this look even cooler?
Update: btw, for all who either cant get image::magick to install or are too lazy to do it, here are some images produced by this program the default image produced big(7.45 meg) image, 10000x10000 with 1.5 million iterations a not so good attempt at color scemes(in case you were wondering, i am in fact somewhat color blind) i would like any suggestion on a better way to color-enable this program
use Image::Magick;

$x = 1;
$y = 1;
print "Welcome to the King's Dream.\n
1. To Draw the King's Dream.\n
2. To draw another cool picture.\n
3. To draw another diffrent cool picture.\n
4. To enter your own points to draw.\n Choice: ";
chomp($choice = <>);
if($choice==4){
print "A: ";chomp($a = <>);
print "B: ";chomp($b = <>);
print "C: ";chomp($c = <>);
print "D: ";chomp($d = <>);
}elsif($choice==2){
$a=-.942868;
$b=-1.934392;
$c=1.084818;
$d=1.015843;
}elsif($choice==3){
$a=-.9986501;
$b=-2.325941;
$c=1.016406;
$d=.7704654;
}else{
$a=-.966918;
$b=2.979879;
$c=.765145;
$d=.744728;
}
print "Enter the X resolution(enter for 1000): ";
chomp($xres = <>);
if(!$xres){$xres = 1000;}
print "Enter the Y resolution(enter for 1000): ";
chomp($yres = <>);
if(!$yres){$yres = 1000;}
print "Enter the number of iterations(enter for 40000): ";
chomp($iterations = <>);
if(!$iterations){$iterations = 40000;}
print "Enter file name(enter for kingsdream.jpg): ";
chomp($filename = <>);
if(!$filename){$filename = "kingsdream.jpg";}
$image = Image::Magick->new;
$image->Set(size=>"$xres"."x"."$yres");
$image->ReadImage('xc:black');
for($i = 1;$i<$iterations;$i++){
$xn = sin($y*$a) + $c*sin($x*$a);
$yn = sin($x*$b) + $d*sin($y*$b);
$x = $xn;
$y = $yn;
$xp = int($x*$xres/4 + $xres/2);
$yp = int($y*$yres/4 + $yres/2);
$image->Set("pixel[$xp,$yp]"=>"white");
}
$image->Write("$filename");
print "Done.";