Geogebra

Ü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.

Geogebra
2D Graphing Beispiel
Geogebra
3D Graphing Beispiel

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.

Punkt
Punkt LaTeX

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.

Vergleich

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.

XML 3D

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.

Verschiebung 3D
Verschiebung 3D LaTeX

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).

LaTeX-Code

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).

Rotation 3D LaTeX

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.