(perl script)
#!/usr/local/bin/perl # # generate a city # if ($#ARGV != 7) { print "usage: city.pl xnum znum xsize zsize xspace zspace ymin ymax\n"; exit; } $xnum = $ARGV[0]; $znum = $ARGV[1]; $xsize = $ARGV[2]; $zsize = $ARGV[3]; $xspace = $ARGV[4]; $zspace = $ARGV[5]; $ymin = $ARGV[6]; $ymax = $ARGV[7]; print <<EOF #VRML V2.0 utf8 PROTO Building [ field SFVec3f s 1 1 1 field SFVec3f t 0 0 0 ] { Transform { translation IS t scale IS s children Shape { appearance Appearance { material Material {} } geometry Box {} } } } EOF ; for ($i=0; $i<$xnum; $i++) { for ($j=0; $j<$znum; $j++) { $ysize = rand() * ($ymax - $ymin) + $ymin; $ysize = int($ysize * 100) / 100; # trim to a few decimal places $x = $i * $xspace; $y = $ysize; $z = $j * $zspace; print "Building { t $x $y $z s $xsize $ysize $zsize }\n"; } }
mrl