Zum Inhalt springen

Javascript »Turtle Graphics« für Adobe Illustrator 2023

Turtle Graphics in Adobe Illustrator 2023 oder frührer erlaubt das Zeichnen von Vektorgrafiken durch Javascript-Programmierung.

(Info:) Das Javascript »Turtle Graphics« für Adobe Illustrator 2023 enthält eine Reihe von Befehlen, die Linien zeichnen können, um eine Grafik zu erstellen. Diese Art der Automation erlaubt, mit wenigen Befehlen komplexe Grafiken vom Computer erstellen zu lassen. Die Idee der Turtle Graphics gibt es seit Ende der 1960er Jahre. In den 1980er waren Teil der Programmierung auf den Home-Computer von Personal Computern vom Commodore VC 20 bis zum Apple ][. In der deutschen Version der Programmiersprache LOGO nannte man es auch »Igel Grafik«. Heute finden sich die Befehle noch in der Programmiersprache Python wieder. Allen diesen Versionen der Turtle Graphics ist gemeinsam, dass sie Bitmap-Bilder erstellten oder erstellen. Turtle Graphics für Adobe Illustrator 2023 oder früher erzeugt eine entsprechende Vektorvariante. So erzeugen Sie Bilder, die auflösungsunabhängig sind, und können diese beliebig vergrößert, verkleinert und weiterverarbeiten.

(Hilfe:) Sie wollen oder können nicht selbst programmieren? Sie brauchen kurzfristig ein Javascript für eine Automatisierung für ein aktuelles Problem in Illustrator oder einem anderen Adobe Programm? Dann helfe ich Ihnen gerne als JavaScript-Entwickler mit meiner jahrzehntelang Programiererfahrung.
Schreiben Sie mir einfach und unverbindlich per Kontaktformular.

Inhaltsverzeichnis

Die Grundidee der Turtle Graphics

Beispiele für Turtle Graphics in Adobe Illustrator 2023 oder frührer durch Javascript-Programmierung.
Beispiele für Turtle Graphics in Adobe Illustrator 2023 oder frührer durch Javascript-Programmierung.

Die Turtle ist so was wie ein virtueller Roboter, der per Befehlen über den Bildschirm gesteuert wird und seinen Weg als Strich zeichnen kann. Dazu braucht es die Grundbefehle Move, um eine bestimmte Anzahl von Schritten sich in eine Richtung vorzubewegen; Rotate, um sich auf der Stelle zu drehen (von -360 bis +360 Grad); und die Befehle Pen down, um bei der Bewegung (Move) einen Strich zu zeichnen; so wie schließlich Pen up, um sich ohne Strich zeichnen vorwärts zu bewegen.

(A:) (Beispiel:) Die vereinfachte Befehlsfolge »Pen down, Move 50, Rotate 90, Move 50, Rotate 90, Move 50, Rotate 90, Move 50, Pen up« zeichnet ein Quadrat mit der Kantenlänge von 50 Einheiten.

Das Besondere bei der Turtle Graphics sind die Drehungen, die nicht absolut, sondern relativ — als aus Sicht der Turtle — durchgeführt werden. Dies ist im ersten Moment etwas ungewohnt, hat jedoch große Vorteile für die Programmierung der Turtle beim Erstellen von Grafiken. So kann man mit dem vorgestellten Befehl Rotate 13 das obige Quadrat um 13° gekippt zeichnen lassen. Denn aus Sicht der Turtle hat das Quadrat weiterhin 90° Ecken.

(B:) (Beispiel:) »Pen down, Rotate 13, Move 50, Rotate 90, Move 50, Rotate 90, Move 50, Rotate 90, Move 50, Pen up« zeichnet ein Quadrat mit der Kantenlänge von 50 Einheiten.

Beispiele für Turtle Graphics in Adobe Illustrator 2023 oder frührer durch Javascript-Programmierung.
Ein Quadrat und ein gedrehtes Quadrat mit Turtle Graphics in Illustrator erstellt.

Das Javascript Turtle Graphics für Illustrator 2023

Zum Steuern der Turtle Graphics in Illustrator 2023 stellt das Javascript einer Reihe von Befehlen zur Verfügung. Das Javascript kann einfach per Befehl #include 'AI_turtlegraphics_bin.jsx'; in ein neues Javascript geladen werden und dann können die Befehle der Turtle Graphics wie andere Funktionen auch in Javascript für Adobe Illustrator genutzt werden.
(Tipp:) Wenn Sie den oben genannten Befehl #include 'AI_turtlegraphics_bin.jsx'; so verwenden, dann muss die Datei »AI_turtlegraphics_bin.jsx« im gleichen Verzeichnis (Ordner) liegen, wie Ihre Javascripts, die die Turtle Graphics Befehlen nutzen.
(Hinweis:) (Update:) 02.11.2022: Im Artikel »Javascript für Adobe Illustrator 2022 verschlüsseln« wurde der Trick gezeigt, mit dem es möglich ist, eine verschlüsselte, binäre jsxbin-Datei per #include in ein anderes Javascript einzubinden. Dies habe ich mit »AI_turtlegraphics_bin.jsx« gemacht. Wenn Sie an dem unverschlüsselten Quellcode interessiert sind, dann schreiben Sie mir bitte via Kontaktformular.

(Download:) Download des Javascripts »Turtle Graphics« für Adobe Illustrator 2023

RECHT Für den privaten Gebrauch ist das Javascript kostenlos. Wollen Sie es kommerziell einsetzen, dann benötigen Sie eine Lizenz, die auf Ihre Bedürfnisse speziell angepasst werden kann. Fragen Sie mich unverbindlich per Kontaktformular. Copyright: Die Javascripts sind urheberrechtlich geschützt. Enthaftungserklärung: Der Einsatz der folgenden Javascripts geschieht auf eigene Gefahr. Denn der Autor übernimmt keine Haftung für eventuell auftretende Schäden.
(Hilfe:) Probleme beim Download?

(Download:) Das Javascript »AI-TurtleGraphics_bin.jsx« (36,8 MByte) Enthalten im ZIP-Archiv (Entpacker für macOS oder Windows) sind das Javascript und 26 Beispiele als Javascripts zum selber ausprobieren.

Die Befehle im Javascript Turtle Graphics für Illustrator 2023

Das Javascript Turtle Graphics für Illustrator 2023 enthält neben den zwei Basisbefehlen noch neun weitere, die zum Teil nützlich sind oder ein »Hack«, also ein Trick, um schneller zu einem gewünschten Ergebnis zu kommen. Die Kurzbeschreibung der Befehle finden Sie hier:

Eigenschaften

Turtle.A = -360 bis 360 Grad ist der Winkel, den Turtle haben kann.
Turtle.X, Turtle.Y = ist die X- und Y-Positon der Turtle.
Turtle.Pen = true oder false für Zeichen ja oder nein = Stift unten oder oben
Turtle.Connect = true verbindet Striche mit gleicher Farbe und Dicke zu einem Pfadobjekt oder false verbindet sie nicht. Durch erste Option enthalten die Grafiken weniger Objekte im Fenster »Ebenen«.
Turtle.Wait = 0 lässt die Turtle beim Zeichnen auf der Stelle für 0 Millisekunden warte. Um eine 1 Sekunde zu warten, geben Sie 1000 ein.
Turtle.Thinkness = 1 ist die Strichstärke in Pixel.

Methoden (Funktionen)

Turtle.init() setzt die Turtle in die Mitte der aktuellen Zeichenfläche (Artboard).
Turtle.up() setzt Turtle.Pen auf false, dann wird nicht mehr gezeichnet.
Turtle.down() setzt Turtle.Pen auf true, dann wird gezeichnet.
Turtle.jump(x, y, a) lässt die Turtle an die Position x, y springen und stellt den Winkel auf den Wert a ein. Dies ist ein Hack, den Sie möglichst nicht nutzen sollten.
Turtle.angle(a) setzt den Winkel der Turtle neu fest. Dabei ist 0° der Blick nach Norden, also zur oberen Blattkante. Dies ist ein Hack, den Sie möglichst nicht nutzen sollten.
Turtle.color(n) wechselt die Farbe für das kommende Zeichnen. n ist dabei eine Zahl zwischen 0 und 13 für die Farben „weiß“, „schwarz“, „rot“, „gelb“, „grün“, „cyan“, „blau“, „magenta“, „bordaux“, „rot2“, „orange“, „orange2“, „orange3“ und „gelb2“.
Turtle.split() setzt Turtle.Connect auf false, es werden dann keine Striche zu einem Pfad verbunden.
Turtle.close() erstellt eine Verbindung vom aktuellen Punkt zum ersten Punkt, die die Turtle gezeichnet hat. Mit diesem Hack können Pfade z. B. unregelmäßige Polygone leicht geschlossen werden.
Turtle.fill(n) Füllt den gerade gezeichneten, geschlossenen Pfad mit einer Farbe. n ist dabei eine Zahl der Farbe zwischen 0 und 13.

Turtle.rotate(a) dreht die Turtle um den Winkel a, der zwischen -360 und +360 liegen kann. Dies ist ein Basisbefehl.
Turtle.move(n) bewegt die Turtle um n Einheiten nach vorne. Dies ist ein Basisbefehl.
Turtle.back(n) bewegt die Turtle um n Einheiten zurück, ohne den Winkel der Turtle zu verändern. Dies ist ein Trick, der später noch wichtig wird. (Stichwort: L-Systems, auch Lindemeyer-System genannt, einer sehr kompakten Programmierweise für rekursive Turtle Graphics Bilder; der Artikel dazu ist in Vorbereitung.)

Bespiel für die Anwendung von Turtle Graphics Befehle

Der Vorteil der Turtle Graphics für Illustrator 2023 liegt darin, dass Sie die so erstellten Vektorgrafiken leicht in Illustrator manuell weiterverarbeitet können.

Das schnelle Quadrat

Statt vier Mal »Move 50, Rotate 90« wie im obigen Beispiel zu schreiben, können die Schleifen von und in Javascript genutzt werden. Das Bild zum Javascript sehen weiter oben unter »Grundidee«.

#include 'AI_turtlegraphics.jsx';
Turtle.init(); // (1:)
Turtle.down(); // (2:)
for (var x = 0; x < 4; x++) { Turtle.move(50); Turtle.rotate(90); } // (3:)
Turtle.up(); // (4:)

Diese vierzeilige Javascript zeichnet ein Quadrat mit der Kantenlänge 50.

(1:) Setzt die Turtle in die Mitte der aktuellen Zeichenfläche.

(2:) »Senkt« den Stift der Turtle, damit diese zeichnen kann.

(3:) Ist eine Schleife mit vier Durchläufen, die jeweils eine Bewegung und eine Drehung durchführen.

(4:) »Hebt« den Stift der Turtle, damit es keine weiteren Striche mehr gibt.

Fortsetzungen

(Hinweis:) Weitere 25 Beispiel zum Programmieren und Zeichnen mit dem Javascript »AI-TurtleGraphics.jsx« für Adobe Illustrator 2023 finden Sie im nächsten Artikel »Beispiele zum Javascript »Turtle Graphics« für Adobe Illustrator 2023«.

Statt selbst sich die Programmierung der Turtle Graphic zu überlegen, kann ein Javascript einen gezeichneten Pfad in Turtle Graphics Befehle übersetzen. Dies ist wieder ein schönes Beispiel dafür, was an Automatisierung in Illustrator möglich ist. Der Artikel und Javascript sind in Vorbereitung und wird hier bald veröffentlicht.

Es gibt für die Turtle Graphics eine noch schnellere, kürzere Schreibweise. Diese wurde von Aristid Lindemayer erfunden und trägt seinen Namen oder kurz nur »L-System« genannt. Das Javascript »AI-Turtle-L-Paser« liest eine Textdatei mit den Befehlen des L-System ein und zeichnet dann aufgrund der Turtle Graphics im Illustrator das gewünschte Objekt. Lesen Sie dazu den Artikel »Javascript »AI-Turtle-L-Paser« für Adobe Illustrator 2023«.

Die fünf Artikel über Turtle Graphics und das Lindemayer-System (L-System)

  1. Javascript »Turtle Graphics« für Adobe Illustrator 2023
  2. Beispiele zum Javascript »Turtle Graphics« für Adobe Illustrator 2023
  3. Javascript »AI-PathToTurtleGraphics« für Adobe Illustrator 2023
  4. Javascript »AI-Turtle-L-Paser« für Adobe Illustrator 2023
  5. Beispiele zum Javascript »AI-Turtle-L-Parser« für Adobe Illustrator 2023

ENDE

(Hilfe:) Wenn Sie eine Funktion zum Automatisieren in (AI:), (PS:), (IC:), (ID:) oder (FM:) benötigen, jedoch nicht selbst programmieren, dann sprechen Sie mich an. Ich übernehme gerne kleine Aufträge: zum Kontaktformular.