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);
	}
}