4
include("gifplot.php");
6
# Here is the function to plot
7
function func($x, $y) {
8
return 5*cos(2*sqrt($x*$x+$y*$y))*exp(-0.3*sqrt($x*$x+$y*$y));
11
# Here are some plotting parameters
23
$cmap = new ColorMap("cmap");
24
$frame = new FrameBuffer(500,500);
28
$p3 = new Plot3D($frame,$xmin,$ymin,$zmin,$xmax,$ymax,$zmax);
29
$p3->lookat(2*($zmax-$zmin));
30
$p3->autoperspective(40);
35
function drawsolid() {
48
$dx = 1.0*($xmax-$xmin)/$nxpoints;
49
$dy = 1.0*($ymax-$ymin)/$nypoints;
50
$cscale = 240.0/($zmax-$zmin);
52
for ($i = 0; $i < $nxpoints; $i++) {
54
for ($j = 0; $j < $nypoints; $j++) {
56
$z2 = func($x+$dx,$y);
57
$z3 = func($x+$dx,$y+$dy);
58
$z4 = func($x,$y+$dy);
59
$c1 = $cscale*($z1-$zmin);
60
$c2 = $cscale*($z2-$zmin);
61
$c3 = $cscale*($z3-$zmin);
62
$c4 = $cscale*($z4-$zmin);
63
$c = ($c1+$c2+$c3+$c4)/4;
64
if ($c < 0) { $c = 0; }
65
if ($c > 239) { $c = 239; }
66
$p3->solidquad($x,$y,$z1,$x+$dx,$y,$z2,$x+$dx,$y+$dy,$z3,$x,$y+$dy,$z4,$c+16);
73
print "Making a nice 3D plot...\n";
76
$frame->writeGIF($cmap,"image.gif");
77
print "Wrote image.gif\n";