#!/usr/bin/perl $dim = 6; $max = 2**$dim; $t=0; $z[0][0]=rand($t); $z[$max][0]=rand($t); $z[0][$max]=rand($t); $z[$max][$max]=rand($t); fill(0,0,$max,$max); #VRML section for $y (0..$max) { for $x (0..$max) { printf("%2.2f ",$z[$x][$y]/2); } print "\n"; } print "\n\n\n\n\n\n\n\n"; # JAVA section print "{\n"; for $y (0..$max) { printf( "{ %2.2ff", $z[$x][$y]/2 ); for $x (1..$max) { printf( ", %2.2ff", $z[$x][$y]/2); } print " },\n"; } print "\n};\n"; $s=.00001; sub fill { my ($x1,$y1,$x2,$y2)=@_; my($xm,$ym); $xm = ($x1+$x2)/2; $ym = ($y1+$y2)/2; $z[$xm][$y1] = ($z[$x1][$y1]+$z[$x2][$y1])/2+rand($s); $z[$xm][$y2] = ($z[$x1][$y2]+$z[$x2][$y2])/2+rand($s); $z[$x1][$ym] = ($z[$x1][$y1]+$z[$x1][$y2])/2+rand($s); $z[$x2][$ym] = ($z[$x2][$y1]+$z[$x2][$y2])/2+rand($s); $z[$xm][$ym] = ($z[$x1][$y1]+$z[$x2][$y1]+ $z[$x1][$y2]+$z[$x2][$y2])/4+rand($s); if($xm-$x1>1) { fill($x1,$y1,$xm,$ym); fill($xm,$y1,$x2,$ym); fill($x1,$ym,$xm,$y2); fill($xm,$ym,$x2,$y2); } }