diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2009-08-18 20:56:02 +0000 |
|---|---|---|
| committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-25 16:59:08 +0000 |
| commit | 9f8a09ed743cedd9547bf0661d518647966ab114 (patch) | |
| tree | 9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/GIFPlot/Ruby/shadow | |
| download | swig-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/Ruby/shadow')
| -rw-r--r-- | Examples/GIFPlot/Ruby/shadow/Makefile | 25 | ||||
| -rw-r--r-- | Examples/GIFPlot/Ruby/shadow/README | 5 | ||||
| -rw-r--r-- | Examples/GIFPlot/Ruby/shadow/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Ruby/shadow/runme.rb | 66 |
4 files changed, 96 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Ruby/shadow/Makefile b/Examples/GIFPlot/Ruby/shadow/Makefile new file mode 100644 index 0000000..8cbea2a --- /dev/null +++ b/Examples/GIFPlot/Ruby/shadow/Makefile @@ -0,0 +1,25 @@ +TOP = ../../.. +SWIG = $(TOP)/../swig +SWIGOPT = -outcurrentdir +SRCS = +TARGET = gifplot +INTERFACEDIR = ../../Interface/ +INTERFACE = gifplot.i +LIBS = -L../.. -lgifplot +INCLUDES = -I../../Include + +all:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' ruby + +static:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \ + TARGET='myruby' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' ruby_static + +clean:: + $(MAKE) -f $(TOP)/Makefile ruby_clean + rm -f *.gif + +check: all diff --git a/Examples/GIFPlot/Ruby/shadow/README b/Examples/GIFPlot/Ruby/shadow/README new file mode 100644 index 0000000..7a33e13 --- /dev/null +++ b/Examples/GIFPlot/Ruby/shadow/README @@ -0,0 +1,5 @@ +This example illustrates Ruby shadow classes. Take a look at +the file GIFPlot/Interface/gifplot.i + +Actually Ruby module of SWIG needs no shadow class. But this example +is named "shadow" in order to be consistent with other languages. diff --git a/Examples/GIFPlot/Ruby/shadow/cmap b/Examples/GIFPlot/Ruby/shadow/cmap Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Ruby/shadow/cmap diff --git a/Examples/GIFPlot/Ruby/shadow/runme.rb b/Examples/GIFPlot/Ruby/shadow/runme.rb new file mode 100644 index 0000000..0afccee --- /dev/null +++ b/Examples/GIFPlot/Ruby/shadow/runme.rb @@ -0,0 +1,66 @@ +# Plot a 3D function +require 'gifplot' +include Math + +# 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)) +end + +# 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.new("cmap") +frame = Gifplot::FrameBuffer.new(500,500) +frame.clear(Gifplot::BLACK) + +P3 = Gifplot::Plot3D.new(frame,XMIN,YMIN,ZMIN,XMAX,YMAX,ZMAX) +P3.lookat(2*[XMAX-XMIN,YMAX-YMIN,ZMAX-ZMIN].max) +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 0...NXPOINTS + y = YMIN + for j in 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 = (c1+c2+c3+c4)/4 + c = 0 if (c < 0) + c = 239 if 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 + end + x = x + dx + end +end + +puts "Making a nice 3D plot..." +drawsolid() + +frame.writeGIF(cmap,"image.gif") +puts "Wrote image.gif" + |
