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

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python