import source from 1.3.40
[external/swig.git] / Examples / GIFPlot / Php / full / runme.php
1 <?
2
3 # Plot a 3D function
4 require "gifplot.php";
5
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));
9 }
10
11 # Here are some plotting parameters
12 $xmin = -5.0;
13 $xmax =  5.0;
14 $ymin = -5.0;
15 $ymax =  5.0;
16 $zmin = -5.0;
17 $zmax =  5.0;
18
19 # Grid resolution
20 $nxpoints =  60;
21 $nypoints =  60;
22
23 $cmap  = new_ColorMap("cmap");
24 $frame = new_FrameBuffer(500,500);
25 FrameBuffer_clear($frame, BLACK);
26
27 $p3    = new_Plot3D($frame,$xmin,$ymin,$zmin,$xmax,$ymax,$zmax);
28 Plot3D_lookat($p3, 2*($zmax-$zmin));
29 Plot3D_autoperspective($p3, 40);
30 Plot3D_rotu($p3, 60);
31 Plot3D_rotr($p3, 30);
32 Plot3D_rotd($p3, 10);
33
34 function drawsolid() {
35         global $p3;
36         global $xmax;
37         global $xmin;
38         global $ymax;
39         global $ymin;
40         global $zmin;
41         global $zmax;
42         global $nxpoints;
43         global $nypoints;
44
45     Plot3D_clear($p3, BLACK);
46     Plot3D_start($p3);
47     $dx = 1.0*($xmax-$xmin)/$nxpoints;
48     $dy = 1.0*($ymax-$ymin)/$nypoints;
49     $cscale = 240.0/($zmax-$zmin);
50     $x = $xmin;
51     for ($i = 0; $i < $nxpoints; $i++) {
52         $y = $ymin;
53         for ($j = 0; $j < $nypoints; $j++) {
54             $z1 = func($x,$y);
55             $z2 = func($x+$dx,$y);
56             $z3 = func($x+$dx,$y+$dy);
57             $z4 = func($x,$y+$dy);
58             $c1 = $cscale*($z1-$zmin);
59             $c2 = $cscale*($z2-$zmin);
60             $c3 = $cscale*($z3-$zmin);
61             $c4 = $cscale*($z4-$zmin);
62             $c = ($c1+$c2+$c3+$c4)/4;
63             if ($c < 0) { $c = 0; }
64             if ($c > 239) { $c = 239; }
65             Plot3D_solidquad($p3, $x,$y,$z1,$x+$dx,$y,$z2,$x+$dx,$y+$dy,$z3,$x,$y+$dy,$z4,$c+16);
66             $y = $y + $dy;
67         }
68         $x = $x + $dx;
69     }
70 }
71
72 print "Making a nice 3D plot...\n";
73 drawsolid();
74
75 FrameBuffer_writeGIF($frame, $cmap,"image.gif");
76 print "Wrote image.gif\n";
77
78 ?>