Erste Schritte mit Plotter
Erste
Schritte mit Plotter
Die Klasse „Plotter“
biete uns Möglichkeiten zur graphischen Darstellung von mathematischen
Funktionen.
Dadurch ist es
den Quereinsteigerin möglich, frühzeitig ohne Spezialkenntnisse die entsprechenden
Anwendungen zu realisieren. Deshalb soll den Einstieg möglichst einfach und
intuitiv sein.
Im Folgenden
werden wir zunächst anhand einiger Beispiele die Möglichkeiten der Klasse Plotter
sehen.
Die Klasse
Plotter ist im Wesentlichen dazu gedacht, Kurven zu zeichnen. Ursprünglich
wurde diese Klassen von Stephan Euler von der Technischen Hochschule
Mittelhessen (THM).
Die direkt zu
Plotter gehörenden Klassen finden wir im Paket „plotter“.
Damit wir auf die
benötigten Klassen aus dem Paket „plotter“ zugreifen zu können, müssen wir
diese importieren. Wie man Pakete oder Klassen importiert findet ihr
>>HIER<<.
Nun ein Beispiel:
import plotter.Graphic;
import plotter.Plotter;
public class Demo1 {
public static void main(String[] args) {
Graphic graphic = new Graphic("Demo_1");
Plotter plotter = graphic.getPlotter();
for(double x = -Math.PI; x <= Math.PI; x += 0.001) {
plotter.add(Math.sin(x));
}
graphic.repaint();
}
}
Zunächst legen
wir ein Objekt der Klasse „Graphic“ fest. Diese Klasse erstellt ein
Hauptfenster und darin eigebettet ein „Plotter“ Objekt sowie eine Statuszeile.
Darüber
hinaus kann man den „Plotter“, falls nötig, in eigene Anwendungen
implementieren. Jedoch muss die Klasse „plotter.jar“ in euren Projekt
implementiert werden.
Wir erhalten
über „Getter“ Methode den implizit erzeugten Plotter.
In der „for-„Schleife
übergeben wir dem Plotter mit der Methode „add()“ die Werte der Sinus Funktion.
Die
eingegebenen Werte werden daher intern zu Wertepaaren in Form einer
Wertetabelle gespeichert.
Nachdem wir die
„for-„Schleife durchgelaufen haben lösen wir eine Aktualisierung, in dem wir
die Methode „repaint()“ aufrufen.
Im ersten
Beispiel sehen wir, wie man mit minimalem Aufwand mit einem Plotter eine
graphische Darstellung erhält. Dazu stellt die Klasse Plotter eine ganze Reihe
von Methoden zur Verfügung.
In unserem
Beispiel wird durch die Nummerierung als x-Bereich von 0 bis 628 angegeben.
Warum es 628? Wir plotten von -pi bis +pi was bedeutet, dass die Periode der
Sinuskurve 2pi ist. 2pi = 6,28. Da wir in 0.01 er schritten aufzählen wird die
„for-„Schleife insgesamt 629 Mal durchlaufen.
Schöner wäre
es, den tatsächlichen Bereich von -pi bis +pi zu verwenden. Dazu müssen wir
lediglich beim Eingeben der Werte die zugehörigen x-Werte mitgeben. Für diesen
Fall gibt es die Version „add(double x, double y) der Methode mit zwei
Parametern.
Nun ergänzen
wir den vorherigen Code mit den folgenden Erweiterungen:
1. Der
Definitionsbereich wird mit dem Faktor 1.1 auf -1.1pi bis +1.1pi vergrößert.
2. x-
und y-Achse werden eingezeichnet.
3. Für
die y-Achse wird eine Schrittweite von 0.25 gewählt.
4. Auf
der x-Achse markieren wir die Punkte x=-pi ; x=-pi/2 ; x=0 ; x = pi/2 ; x = pi
und übergeben die Werte als Feld.
5.Für
die Beschriftungen auf der x-Achse sollen zwei Nachkommastellen angezeigt
werden. „Plotter“ bietet uns mit der Methode „printf()“ diese Möglichkeit.
Zweites
Beispiel:
import plotter.Graphic;
import plotter.Plotter;
public class Demo2 {
public static void main(String[] args) {
Graphic graphic = new Graphic("Demo_2");
Plotter plotter = graphic.getPlotter();
plotter.setXrange(-(Math.PI) * 1.1, (Math.PI) * 1.1);
plotter.setXLine(0);
plotter.setYLine(0);
plotter.setAutoYgrid(0.25);
double[] xgrid = {-Math.PI, -1, 0, 1, Math.PI};
plotter.setXLabelFormat("%.2f");
plotter.setXGrid(xgrid);
for(double x = -Math.PI; x <= Math.PI; x += 0.001) {
plotter.add(x, Math.sin(x));
}
graphic.repaint();
}
}
Ihr könnt die
Beispiele >>HIER<< Herunterladen.
Kommentare
Kommentar veröffentlichen