Plotting one point at a time with JLink
- To: mathgroup at smc.vnet.net
- Subject: [mg36666] Plotting one point at a time with JLink
- From: Blimbaum Jerry DLPC <BlimbaumJE at ncsc.navy.mil>
- Date: Wed, 18 Sep 2002 02:09:50 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
A while back someone asked if Mathematica could plot data one point at a
time....most answers were no, with one exception, where someone showed how
to use the same Graphic Cell repeatedly....here is some Mathematica, JLink
program that will do just that...
<< JLink`
InstallJava[CommandLine -> "c:\\j2sdk1.4.1\\bin\\java.exe"] (* or set
command line to where your java.exe is *)
UseFrontEndForRendering = False;
createWindow[] := Module[{frame},
frame =
JavaNew["com.wolfram.jlink.MathFrame", "Drawing Sine Wave Animation
One Point at a Time"];
drawArea = JavaNew["com.wolfram.jlink.MathCanvas"];
drawArea@setUsesFE[UseFrontEndForRendering];
drawArea@setSize[800, 600];
JavaBlock[frame@setLayout[JavaNew["java.awt.BorderLayout"]];
frame@add[drawArea, ReturnAsJavaObject[BorderLayout`CENTER]];
frame@pack[]; points = Range[data // Length]
frame@setSize[800, 600];
frame@setLocation[200, 200];
JavaShow[frame]];
frame
]
data = Table[{x, Sin[x]}, {x, -0.0000000000001, 2 Pi, .1}];
frame[n_] :=
ListPlot[Take[data, {1, n}], PlotRange -> {{0, 2 Pi}, {-1.5, 1.5}},
PlotStyle -> {PointSize[.005], Hue[0]}, DisplayFunction -> Identity]
drawPoints[ptNow_] := Show[frame[ptNow], AspectRatio -> Automatic];
points = Range[data // Length];
AnimationPlot[pt_List] := JavaBlock[ Block[{frm},
frm = createWindow[];
Map[(obj = drawPoints[#];
drawArea@setMathCommand["obj"];
drawArea@repaintNow[];
Pause[0.0001];) &, pt];
] ]
AnimationPlot[points]
jerry blimbaum NSWC panama city, fl