[Home] Restricted access for guests. The link to Java source code is disabled
Java source code of 'jhplot.bsom.BsomDrawArea'
package jhplot.bsom;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.util.Vector;
/**
* Draw area
* @author sergei
*
*/
public class BsomDrawArea extends DrawArea {
/**
*
*/
private static final long serialVersionUID = 1L;
Vector buf;
BsomDrawArea(Bsom demo, int xd, int yd, double scale) {
super(demo, xd, yd, scale);
}
/**
* Initialize data
*/
void initData() {
n_data = buf.size() / 2;
X = new UserData(n_data, scale, 0, xd, yd, buf);
}
/* Double-buffering is used for drawing objects. */
public boolean draw_new_data;
Graphics datagraphics;
Image datascreen;
/**
* Update canvas
*/
public synchronized void update(Graphics g) {
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width)
|| (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
draw_new_data = true;
}
if (draw_new_data) {
datascreen = createImage(d.width, d.height);
datagraphics = datascreen.getGraphics();
datagraphics.setColor(getBackground());
datagraphics.fillRect(0, 0, d.width, d.height);
datagraphics.setColor(Color.black);
X.draw(datagraphics);
draw_new_data = false;
}
if (!density_mode) {
offgraphics.drawImage(datascreen, 0, 0, null);
} else {
g.drawString("Now, density is calculated.", 0, 10);
drawDensity(offgraphics);
offgraphics.setColor(Color.red);
UserData UX = (UserData) X;
double s = UX.dscale * UX.dscale;
offgraphics.drawString("a=" + alpha * s, 0, 10);
offgraphics.drawString("b=" + beta * s, 0, 20);
offgraphics.setColor(Color.green);
X.draw(offgraphics);
}
offgraphics.setColor(Color.blue);
W.draw(offgraphics);
W.drawCurve(offgraphics);
paint(g);
}
}