summaryrefslogtreecommitdiff
path: root/Examples/GIFPlot/Python/shadow/runme.py
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/GIFPlot/Python/shadow/runme.py
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/GIFPlot/Python/shadow/runme.py')
-rw-r--r--Examples/GIFPlot/Python/shadow/runme.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Python/shadow/runme.py b/Examples/GIFPlot/Python/shadow/runme.py
new file mode 100644
index 0000000..d914601
--- /dev/null
+++ b/Examples/GIFPlot/Python/shadow/runme.py
@@ -0,0 +1,62 @@
+# Plot a 3D function
+import gifplot
+from math import *
+
+# Here is the function to plot
+def func(x,y):
+ return 5*cos(2*sqrt(x*x+y*y))*exp(-0.3*sqrt(x*x+y*y))
+
+# Here are some plotting parameters
+xmin = -5.0
+xmax = 5.0
+ymin = -5.0
+ymax = 5.0
+zmin = -5.0
+zmax = 5.0
+
+# Grid resolution
+nxpoints = 60
+nypoints = 60
+
+cmap = gifplot.ColorMap("cmap")
+frame = gifplot.FrameBuffer(500,500)
+frame.clear(gifplot.BLACK)
+
+p3 = gifplot.Plot3D(frame,xmin,ymin,zmin,xmax,ymax,zmax)
+p3.lookat(2*max([xmax-xmin,ymax-ymin,zmax-zmin]))
+p3.autoperspective(40)
+p3.rotu(60)
+p3.rotr(30)
+p3.rotd(10)
+
+def drawsolid():
+ p3.clear(gifplot.BLACK)
+ p3.start()
+ dx = 1.0*(xmax-xmin)/nxpoints
+ dy = 1.0*(ymax-ymin)/nypoints
+ cscale = 240.0/(zmax-zmin)
+ x = xmin
+ for i in xrange(0,nxpoints):
+ y = ymin
+ for j in xrange(0,nypoints):
+ z1 = func(x,y)
+ z2 = func(x+dx,y)
+ z3 = func(x+dx,y+dy)
+ z4 = func(x,y+dy)
+ c1 = cscale*(z1-zmin)
+ c2 = cscale*(z2-zmin)
+ c3 = cscale*(z3-zmin)
+ c4 = cscale*(z4-zmin)
+ c = int((c1+c2+c3+c4)/4)
+ if (c < 0) : c = 0
+ if c > 239 : c = 239
+ p3.solidquad(x,y,z1,x+dx,y,z2,x+dx,y+dy,z3,x,y+dy,z4,c+16)
+ y = y + dy
+ x = x + dx
+
+print "Making a nice 3D plot..."
+drawsolid()
+
+frame.writeGIF(cmap,"image.gif")
+print "Wrote image.gif"
+