In der Vorlesung und in den Übungen wird die Grafikbibliothek Gloss verwendet. Gloss bietet die Möglichkeit mit einem einfachen Datentyp und einigen Funktionen Vektorgrafiken zu erstellen und anzuzeigen. Die offizielle Dokumentation finden Sie unter http://hackage.haskell.org/package/gloss.
Auf den SCI-Rechnern ist Gloss bereits installiert. Wenn Sie Gloss nutzen wollen, müssen Sie beim Einloggen eine NX-Session wählen, einfache X11-Sessions sind leider nicht möglich.
Verwenden Sie den NX-Client von http://www.nomachine.com um Zugriff auf die SCI-Rechner zu erhalten.
Wir gehen davon aus, dass Sie die aktuelle Haskell-Platform installiert haben und Ihnen das Tool cabal zur Verfügung steht.
Gloss benötigt einen X-Server mit funktionierender OpenGL Unterstützung (Hardwarebeschleunigung ist nicht nötig), auf aktuellen Distributionen ist alles notwendige üblicherweise bereits installiert.
Installieren Sie Gloss mit dem Befehl
cabal install gloss
Verschiedene Beispielprogramme können Sie mit
cabal install gloss-examples
installieren. Eventuell müssen Sie vor der Installation die Paketdatenbank updaten, dies machen Sie mit dem Befehl
cabal update
Installieren Sie Gloss mit dem Befehl
cabal install gloss
Verschiedene Beispielprogramme können Sie mit
cabal install gloss-examples
installieren. Eventuell müssen Sie vor der Installation die Paketdatenbank updaten, dies machen Sie mit dem Befehl
cabal update
Windows bringt leider standardmäßig keine Gloss-kompatible GLUT Implementierung mit, deshalb wird Gloss mit einem anderen OpenGL Bibliothek verwendet. Mit dieser können leider keine Bilder gezeichnet werden, die den Konstruktur Text
enthalten.
Die Übungsaufgaben sind jedoch machbar, da wir unsere eigenen Zeichenroutinen für Buchstaben verwenden.
Für Windows brauchen Sie die aktuelle Version von Gloss, updaten Sie daher mit
cabal update
ihre Paketdatenbank. Installieren Sie dann Gloss mit dem Befehl
cabal install gloss --flags="GLFW -GLUT"
Verschiedene Beispielprogramme können Sie mit
cabal install gloss-examples
installieren.
Grund: Gloss kann nur Bilder mit begrenzter Schachtelungstiefe fehlerfrei zeichnen, da die von Gloss verwendete Bibliothek nur eine begrenzte Stacktiefe verwalten kann.
Abhilfe: Es ist möglich die Schachtelungstiefe von Bildern zu reduzieren ohne das Anzeigeergebnis zu ändern, z.B. indem mehrere aufeinanderfolgende Verschiebeoperationen zusammengefasst werden. Das Modul Simplify stellt dazu die Funktion simplify :: Picture → Picture
bereit.