Turtle-Grafik
Mit Turtle-Grafik wird eine Bildbeschreibungssprache bezeichnet, bei der man sich vorstellt, dass ein stifttragender Roboter (die Schildkröte, engl. „turtle“) sich auf der Zeichenebene bewegt und mit einfachen Kommandos, wie Stift heben, senken, vorwärts laufen und drehen, gesteuert werden kann. Diese Idee wurde mehrfach realisiert, z.B. als Steuersprache für Stiftplotter (HPGL), als Teil der Programmiersprache für Kleincomputer (Basic, Pascal auf Amiga, Atari, C-64?) und als Grundidee der pädagogischen Programmiersprache LOGO. Dieser Ansatz wurde zugunsten koordinatenbasierter Grafikbeschreibung wieder fallengelassen und wird heute im wesentlichen zur Darstellung von Fraktalen mittels L-Systemen noch verwendet.
Einfacher Formalismus
Die Schildkröte besitzt keinen Speicher und führt Kommandos sofort aus
- F(x) - Bewegung nach vorn um Länge x und Zeichnung
- f(x) - Bewegung nach vorn um Länge x ohne Zeichnung
- +(a) - Drehung nach links, gegen Uhrzeigersinn, um Winkel a
- -(a) - Drehung nach rechts, mit Uhrzeigfersinn, um Winkel a
Erweiterter Formalismus
Es wird ein LIFO-Stack für Koordinatensysteme eingeführt. Jede Koordinatentransformation besteht aus einer Drehung, die durch einen Winkel parametrisiert werden kann, und einer Verschiebung. Dazu gibt es die Symbole [ und ], welche folgende Bedeutung haben:
- [ lege das aktuelle Koordinatensystem auf dem Stack ab
- ] Stelle das oberste Koordinatensystem des Stacks als aktuelles wieder her.
Innerhalb eines Klammerpaars kann also ein im Leeren endender Zweig gezeichnet werden.
Weiterhin ist es möglich, das Symbol F zu verdoppeln, um verschiedene Ersetzungsregeln zu realisieren, oder weitere reine Bewegungssymbole analog zu + und - zu definieren.
- f wie F, nur dass nicht gezeichnet wird
- | Drehung um 180 Grad