summaryrefslogtreecommitdiff
path: root/Examples/GIFPlot/Java/full/runme.java
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/GIFPlot/Java/full/runme.java')
-rw-r--r--Examples/GIFPlot/Java/full/runme.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Java/full/runme.java b/Examples/GIFPlot/Java/full/runme.java
new file mode 100644
index 0000000..c47c1e6
--- /dev/null
+++ b/Examples/GIFPlot/Java/full/runme.java
@@ -0,0 +1,75 @@
+// Plot a 3D function
+import java.lang.Math;
+
+public class runme {
+
+ static {
+ try {
+ System.loadLibrary("gifplot");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
+ System.exit(1);
+ }
+ }
+
+ public static void main(String argv[]) {
+
+ // Here are some plotting parameters
+ double xmin = -5.0;
+ double xmax = 5.0;
+ double ymin = -5.0;
+ double ymax = 5.0;
+ double zmin = -5.0;
+ double zmax = 5.0;
+
+ // Grid resolution
+ int nxpoints = 60;
+ int nypoints = 60;
+
+ SWIGTYPE_p_ColorMap cmap = gifplot.new_ColorMap("cmap");
+ SWIGTYPE_p_FrameBuffer frame = gifplot.new_FrameBuffer(500,500);
+ gifplot.FrameBuffer_clear(frame,(short)gifplot.BLACK);
+
+ SWIGTYPE_p_Plot3D p3 = gifplot.new_Plot3D(frame,xmin,ymin,zmin,xmax,ymax,zmax);
+ gifplot.Plot3D_lookat(p3,2*(zmax-zmin));
+ gifplot.Plot3D_autoperspective(p3,40);
+ gifplot.Plot3D_rotu(p3,60);
+ gifplot.Plot3D_rotr(p3,30);
+ gifplot.Plot3D_rotd(p3,10);
+
+ System.out.println( "Making a nice 3D plot..." );
+ gifplot.Plot3D_clear(p3,(short)gifplot.BLACK);
+ gifplot.Plot3D_start(p3);
+ double dx = 1.0*(xmax-xmin)/nxpoints;
+ double dy = 1.0*(ymax-ymin)/nypoints;
+ double cscale = 240.0/(zmax-zmin);
+ double x = xmin;
+ for (int i = 0; i < nxpoints; i++) {
+ double y = ymin;
+ for (int j = 0; j < nypoints; j++) {
+ double z1 = func(x,y);
+ double z2 = func(x+dx,y);
+ double z3 = func(x+dx,y+dy);
+ double z4 = func(x,y+dy);
+ double c1 = cscale*(z1-zmin);
+ double c2 = cscale*(z2-zmin);
+ double c3 = cscale*(z3-zmin);
+ double c4 = cscale*(z4-zmin);
+ double c = (c1+c2+c3+c4)/4;
+ if (c < 0) c = 0;
+ if (c > 239) c = 239;
+ gifplot.Plot3D_solidquad(p3,x,y,z1,x+dx,y,z2,x+dx,y+dy,z3,x,y+dy,z4,(short)(c+16));
+ y = y + dy;
+ }
+ x = x + dx;
+ }
+
+ gifplot.FrameBuffer_writeGIF(frame,cmap,"image.gif");
+ System.out.println( "Wrote image.gif" );
+ }
+
+ // Here is the function to plot
+ public static double func(double x, double y) {
+ return 5*java.lang.Math.cos(2*java.lang.Math.sqrt(x*x+y*y))*java.lang.Math.exp(-0.3*java.lang.Math.sqrt(x*x+y*y));
+ }
+}