use Herbaer::Punktediagramm; # "Welt"-Koordinaten my $points = [ [1, 2], [4, 8], [7, 9], [10, 7], [11, 8] ]; # Führungspunkte einer C-Bezier-Kurve in Weltkoordinaten my $cbezier = [ [1, 2], [4, 7], [8, 7], [11, 6] ]; my $pd =newHerbaer::Punktediagramm (3000, 2000, "Titel"); $pd ->add_pointset("Punktmenge", $points); $pd ->add_cbezier("Kurve", $cbezier); $pd ->y_autorange(); # $pd ->y_autorange_step(4); $pd ->x_autoticks(); $pd ->scale(100, 2950, 2900, 50); $pd ->write_xml("diagramm.xml");
Alle Funktionen geben das Objekt selbst zurück.
Erzeugt ein neues Objekt zur Ausgabe der Daten für ein Diagramm mit Punktmengen und Linien (C-Bezier-Kurven).
$width und $height sind die Breite und die Höhe des Diagramms, $title der optionale Titel.
Fügt dem Diagramm eine Menge von Punkten hinzu.
$name ist eine Bezeichnung, die der Punktmenge zugeordnet ist. $points ist eine ARRAY-Referenz der Form [ [x1, y1], [x2, y2], ....]. Die Koordinatenwerte sind „Weltkoordinatenwerte”.
Fügt dem Diagramm eine C-Bezier-Kurve hinzu.
$name ist eine Bezeichnung, die der Bezier-Kurve zugeordnet ist.
$cbezier ist eine ARRAY-Referenz der Führungspunkte der C-Bezier-Kurve in „Weltkoordinaten” der Form [ [x(1), y(1)], [x(2), y(2)], .... [x(3n+1), y(3n+1)] ].
Bestimmt den y-Ausgabebereich, die Markierungen an der y-Achse und deren Beschriftungen.
$min ist die Mindestzahl der Intervalle, in die die Achsenmarkierungen den y-Ausgabebereich zerlegen. Der Default-Wert ist 7.
Der „Echtwertebereich” ist das Intervall zwischen dem kleinsten und dem größten y-Wert, der als y-Koordinate in einer Punktmenge oder als Führungspunkt einer C-Bezier-Kurve vorkommt. Als Schrittweite $step wird die größte Zahl bestimmt, die eine Zehnerpotenz oder das Doppelte oder das Fünffache einer Zehnerpotenz ist und deren $min-Faches nicht größer ist als die Länge des Echtwertebereichs. Dann wird die Funktion $pd -> aufgerufen.y_autorange_step ($step)
Bestimmt den y-Ausgabebereich, die Markierungen an der y-Achse und deren Beschriftungen. $step muss eine positive Zahl sein.
Die untere Grenze des y-Ausgabebereichs ist das größte ganzzahlige Vielfache der Schrittweite $step, das nicht größer ist als der kleinste vorkommende y-Wert in einer Punktmenge oder der Liste der Führungspunkte einer C-Bezier-Kurve. Die obere Grenze des y-Ausgabebereichs ist das kleinste ganzzahlige Vielfache der Schrittweite $step, das nicht kleiner ist als der größte vorkommende y-Wert und größer als die untere Grenze des y-Ausgabebereichs ist.
Die y-Achse wird an den ganzzahligen Vielfachen der Schrittweite $step markiert, jede Markierung mit dem Zahlenwert beschriftet.
Bestimmt automatisch die Markierungen der x-Achse und deren Beschriftungen. $min ist eine positive ganze Zahl, der Default-Wert ist 7.
Der „Echtbereich” ist das Intervall zwischen dem größten und dem kleinsten x-Koordinatenwert, der in einem Punkt einer Punktmenge oder als Führungspunkt einer C-Bezier-Kurve vorkommt.
Die Schrittweite step ist die größte Zahl, die eine Zehnerpotenz oder das Doppelte oder das Fünffache einer Zehnerpotenz ist und deren $min-Faches nicht größer ist als die Länge des „Echtbereichs”.
Die x-Achse wird an den ganzzahligen Vielfachen von step markiert, die im halboffenen Intervall [xmin + step/2, xmax - step/2) liegen, zusätzlich am Endpunkt xmax. xmin und xmax stehen hier für die Grenzen des Echtbereichs.
Falls der Ausgabebereich noch nicht definiert ist, definieren der Echtwertebereich und der Echtbereich den Ausgabebereich.
Diese Funktion berechnet die Bildkoordinaten der Punkte und Achsenmarkierungen.
Der Bildkoordinatenwert $sxmin entspricht der unteren Grenze des x-Ausgabebereichs, $sxmax der oberen Grenze des x-Ausgabebereichs, $symin der unteren Grenze des y-Ausgabebereichs und $symax der oberen Grenze des y-Ausgabebereichs.
Normalerweise steigen die y-Werte in einem Diagramm von unten nach oben, während die senkrechten Bildkoordinaten von oben nach unten steigen. Deshalb ist oft $symin größer als $symax.
Die Grenzen des x-Ausgabebereichs und des y-Ausgabebereichs dürfen nicht zusammenfallen.
Diese Funktion gibt die Daten zur Erstellung des Diagramms als XML-Datei aus. $filepath ist der Dateipfad der XML-Datei. Der XML-Namensraum ist http:herbaer.de/xmlns/20200803/punktediagramm/.
Die Transformation pd_svg.xslt erzeugt aus der Ausgabedatei eine SVG-Datei.
Das Modul Herbaer::Punktediagramm ist zur Ausgabe der Daten für ein Diagramm gedacht. Nur die bisher nötigen Funktionen sind implementiert.
Das Programm ist mit Perl Version 5.24.1 entwickelt. Es benutzt das Modul Herbaer::XMLDataWriter zur Ausgabe.