Frühe Grafikexperimente

Zwischen 1980 und 1985 beschäftigte ich mich mit der Programmiersprache LOGO und der darin enthaltenen Turtlegrafik. Angeregt durch ein Buch über die grafischen Experimente von Frieder Nake, Georg Nees und Herbert W. Franke begann ich, einige Plottergrafiken zu programmieren.

Hard- und Software

Die Hardware, welche damals zum Einsatz kam:

Die Bilder

Die originalen Plottergrafiken existieren leider nicht mehr. Die LOGO-Programme laufen nur noch unter dem alten IBM-LOGO. Nach dem Umschreiben der Programme in das modernere MSW-LOGO (nur geringe Anpassungen) konnte ich die Bilder rekonstruieren.

Sie sehen hier die Rekonstruktionen der frühen LOGO-Grafiken:

Drachenkurve Diese Drachenkurve entsteht aus der rekursiven Ausführung einer Rechteckkurve.
Zufalls-Quadrate 1 Konzentrische Quadrate mit einer zufälligen Seitenlänge und zufälliger Farbe.
Zufalls-Quadrate 2 Quadrate mit mit zufälliger Anordnung und Farbe, jedoch mit einer horizontalen und einer verikalen Symmetrieachse.
Koch'sche Schneeflocke Die Koch'sche Schneeflocke entsteht ähnlich wie die Drachenkurve oben, jedoch aus einer Dreieckskurve als Basis.
Tiefe Durch Ausrichten der Linien zu einem zentralen Fluchtpunkt entsteht der Eindruck räumlicher Tiefe.
Quad-Spiralen Sechs Quadrate, die in einer Spirale zu ihrem Zentrum hin immer kleiner werden.

Zu dem letzten Beispiel, den Quad-Spiralen, können Sie hier unten einmal das vollständige LOGO-Programm sehen:

PPROP ".SYSTEM "BURY "TRUE

MAKE "KORD [[[-144 96] R] [[48 96] L] [[48 96] R] [[-48 0] L] [[-48 0] R] [[144 0] L]]

TO SPIR1
SETWIDTH 40
SETPAL 1
CS PU WRAP .SETSCRUNCH 0.9
SPIR1.1 :KORD
END

TO SPIR1.1 :KORD
IF EMPTYP :KORD [STOP]
SETPOS FIRST FIRST :KORD
SPIR1.2 LAST FIRST :KORD
SPIR1.1 BF :KORD
END

TO SPIR1.2 :DREH
SETH 0
IF :DREH = "L [SETPC 1]
IF :DREH = "R [SETPC 2]
PD
IF :DREH = "R [SETH 90 REPEAT 4 [FD 96 RT 90] RT 0.5 SPIR1.3 95]
IF :DREH = "L [SETH 270 REPEAT 4 [FD 96 LT 90] LT 0.5 SPIR1.4 95]
PU
END

TO SPIR1.3 :SEITE
IF :SEITE < 0 [STOP]
FD :SEITE RT 90.5
SPIR1.3 :SEITE - 1
END

TO SPIR1.4 :SEITE
IF :SEITE < 0 [STOP]
FD :SEITE LT 90.5
SPIR1.4 :SEITE - 1
END