Über uns
Wir sind Oliver Schmitt und Fabian Schenk, Bachelor-Studenten der angewandten Informatik and der Ruprecht-Karls-Universität Heidelberg. Auf dieser Seite stellen wir unser Anfängerpraktikum mit dem Thema "3D Latex-Ausgabe für Geogebra" vor.
Was ist Geogebra?
Geogebra ist eine umfangreiche Mathematiksoftware und bietet verschiedene Applikationen für die Themenbereiche der Geometrie, Analysis und Statistik. Die verschiedenen Teile des Softwarepakets sind sowohl als Web Anwendung und als Desktop Client verfügbar. Außerdem steht Geogebra zu einem großen Teil unter der GNU General Public License als freie Software zur Verfügung und ist damit auch kostenlos für die nicht kommerziellen Nutzung. Für uns interessant sind vor allem die Graphing Tools, mit deren Hilfe zwei- und drei-dimensionale geometrische Darstellungen erstellt werden können. Neben einfachen Aktionen, wie zum Beispiel dem Zeichnen einer Geraden, bieten die beiden Tools auch weiter reichende Funktionalitäten, wie das Zeichnen von geometrischen Formen oder der Berechnung von Schnitt- und Extrempunkten. Die beiden unten stehenden Abbildungen zeigen die Verwendung der Tools jeweils in 2D und 3D. Auf der linken Seite stehen zwei Menus zu Verfügung, die eine Übersicht über die erstellten Objekte und die verfügbaren Aktionen geben.
2D Latex-Ausgabe
Die im Graphing-Tool erstellten Graphen können in verschiedenen Formaten heruntergeladen werden, beispielsweise als Bild/PDF oder als LaTeX-Code. Im 2D-Graphing-Tool sind die gezeigten Formate alle verfügbar, im 3D-Graphing-Tool hingegen sind einige Funktionalitäten jedoch noch nicht verfügbar, die Downloads einger Formate liefern nur Placeholder-Dateien. Auch der Download des LaTeX-Files liefert nur solch einen Placeholder, daher die Notwendigkeit der Implementierung.
Die unten gezeigten Bilder dienen in diesem Abschnitt als Beispiel. Zu sehen ist die Zeichnung eines
Punktes A mit den Koordinaten (-3,2). Die von der LaTeX-Ausgabe erzeugten Bilder(rechts) sehen denen der
PNG-Ausgabe (links) sehr ähnlich. Das soll auch für die 3D-LaTeX-Ausgabe erreicht werden.
Um an die im Graphen angezeigten Daten zu kommen, bzw. um eine Zeichnung wiederherzustellen, können
die im Graphing-Tool erstellten Graphen als .ggb-Archiv heruntergeladen werden. In diesem befinden
sich unter anderem drei xml-Dateien, sowie ein Bild zur Bildvorschau. Die Dateien
"geogebra_defaults2d.xml" und "geogebra_defaults3d.xml" waren für uns eher uninteressant, sie
beinhalten hauptsächlich Standardinformationen zur Wiederherstellung eines gezeichneten Graphen.
XML-Dateien eignen sich gut für die Darstellung hierarchisch strukturierter Daten in einer
Textdatei, sodass diese sowohl für den Menschen als auch für den Computer lesbar sind.
Für uns von Interesse war die Datei "geogebra.xml". In dieser befinden sich die Informationen zu den
im Graphen angezeigten Daten, beispielsweise den Koordinaten der gezeichneten Punkte sowie die
Drehung des Koordinatensystems.
Die für uns wichtigen Informationen über den Punkt A sind in diesem Ausschnitt der "geogebra.xml"-Datei wiederzufinden. Es handelt sich um ein Element des Typen "point" mit dem Label "A". Außerdem sind die Koordinaten des Punktes wiederzufinden, sowie die Farbe des Punktes (angegeben in RGB-Werten).
In dem Abschnitt <euclidianView> findet sich die Information wieder wo das Koordinatensystem liegt, welcher Bereich des Koordinatensystems gezeigt wird, sowie die Größe des Clipping fields, in welchem das Bild gezeichnet wird.
Von 2D zu 3D
Im drei-dimensionalen Fall standen leider nicht alle Download-Möglichkeiten zur Verfügung. Zwar sind auch hier alle Einträge des Dropdown Menus vorhanden, viele von diesen dienen aber nur als Platzhalter und stellen keine tatsächliche Funktionalität bereit, bei einem Klick darauf passiert leider nichts. Die funktionierenden Downloads waren das Geogebra interne Archivformat .ggb, und die beiden Bildformate .png und .pdf. Da es nicht möglich war aus den Bildformaten für unser Ziel relevante Informationen zu extrahieren, war das Archivformat als einziges interessant. Aus einem Vergleich der in dem Archiv enthaltenen Dateien im zwei- und drei- dimensionalen, ließ sich erkennen, das nur die geogebra.xml Datei einen Unterschied aufwies.
Im Dreidimensionalen findet sich die Information wie das Koordinatensystem aussieht, in <eulidianView3D>
anstatt in <eulidianView>. Auch hier findet sich wieder Information über die Verschiebung des
Koordinatensystems sowie dessen Skalierung. Zusätlich kommen noch zwei Winkel hinzu, um die gedreht wurde um
das angezeigte Bild zu erzeugen.
Die Darstellung des Punktes ist identisch mit der Darstellung im Zweidimensionalen, es kommt lediglich eine
weitere Koordinate hinzu.
Ergebnisse
Um unsere Rechnungen zu prüfen und zu visualisieren haben wir uns einfache Beispiele ausgedacht, die
"geogebra.xml"-Datei in den .ggb-Archiven entsprechend geändert und dann mit LaTeX gezeichnet um unsere
Ergebnisse mit den als PNG verfügbaren Bildern zu vergleichen.
Als erstes haben wir ein einfaches Beispiel konstruiert, in dem xAngle=zAngle=0 und xZero=yZero=zZero=3. Es
findet also keine Drehung statt, sondern lediglich eine Verschiebung des Koordinatensystems. Zu sehen ist
links der Punkt Q=(1,1,1) im Bild der PNG-Ausgabe von Geogebra und rechts der Punkt A=(1,1,1) wie er durch
unsere Rechnung und Zeichnung dargestellt wird.
Die oben gezeigte Zeichnung wird durch folgenden LaTeX-Code gezeichnet (Die Einleitung des LaTeX-Files ist identisch mit der Einleitung der 2D-Version, hier abgekürzt mit %...). Hierbei werden die Achsen als Geraden gezeichnet und dann beschriftet. Dafür müssen Anfangs- und Endpunkte der Achsen berechnet werden (Beispielhaft gezeigt auf Präsentationsfolien).
Das nächste Beispiel wurde so gewählt, dass das Koordinatensystem nicht verschoben ist, dafür aber eine einfache Rotation um 90° stattfindet. Dafür wurde xZero=yZero=zZero=0 gewählt, sowie xAngle=0 und zAngle=-90. Der Punkt A hat die Koordinaten (3,5,2).
Der nächste Schritt ist, die Rechnung auf ein Koordinatensystem anzuwenden, das sowohl um die x-Achse, als auch um die z-Achse gedreht ist. Leider war es nicht möglich hierfür ein Beispiel zu produzieren, das korrekte Werte liefert, die in einer Zeichnung darstellbar sind. Da wir durch das Reverse Engineering nur oberflächliche Eindrücke gewinnen konnten wie genau die Darstellung bei Geogebra intern funktioniert, war es für uns nicht möglich unseren "Fehler" bei der Rechnung mit zwei Drehungen zu finden. Auch die Wahl und Rechnung mehrer einfacher Beispiele lieferte und nicht die Möglichkeit nachzuvollziehen wie die genaue Darstellung intern abläuft.
Folien der Präsentation. Hier sind auch alle Rechnungen zu finden.