Notice: Undefined index: sg in /usr3/euler/plotter/index.php on line 26
Java Plotter

offsetdemo

Mit Offset können Datensätze leicht verschoben werden. Ein Offset wird automatisch bei allen Punkten des Datensatzes addiert. In diesem Bespiel werden Quadrate angelegt. Dann werden sie mittels y-Offset nach unten bewegt.

Bild

Code

import java.awt.Color;
import java.awt.Dimension;
import java.util.Random;

import javax.swing.JFrame;

import plotter.Graphic;
import plotter.Plotter;
import plotter.Sleep;

public class Quadrate {
	private int range = 500;
	private int nQuad = 60;
	private int maxSpeed = 8;
	private Graphic graphic = new Graphic("fallende Quadrate");
	private Plotter plotter = graphic.getPlotter();
	Random rand = new Random();

	public Quadrate() {
		graphic.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		plotter.setPreferredSize(new Dimension(range, range));
		plotter.setRange(0, range);
		graphic.pack();
	}

	public static void main(String args[]) {
		(new Quadrate()).male();
	}

	public void male() {
		for (int n = 0; n < nQuad; n++) {
			quad("" + n, 5 + rand.nextInt(10), rand.nextInt(range), range - 10);
		}

		graphic.repaint();
		for(int t=0; ;t++) {
			plotter.setStatusLine("Time: " +t);
			for (int n = 0; n < nQuad; n++) {
				double yo = plotter.getDataSet("" + n).getyOffset();
				yo -= rand.nextInt( maxSpeed  );
				if (yo < -range) {
					yo = 0;
				}
				plotter.getDataSet("" + n).setyOffset(yo);
			}
			graphic.repaint();
			Sleep.sleep(20);
		}
	}

	public void quad(String name, int size, int x, int y) {
		plotter.nextDataSet(name);
		plotter.setDataColor(new Color(rand.nextInt(255), rand.nextInt(255),
				rand.nextInt(155) ) );
		plotter.add(x, y);
		plotter.addD(size, 0);
		plotter.addD(0, size);
		plotter.addD(-size, 0);
		plotter.addD(0, -size);
	}
}