****************************************************************** * * * GRAFTALE + IFS * * Ein Programm zur Erzeugung und Manipulation von Graftalen * * sowie Iterativen Funktionssystemen (IFS) * * (Als Zugabe: Einige bekannte rekursive Kurven) * * * * Autor: Dr. Klaus Fr”hlich * * Wormser Str. 18 * * 6054 Rodgau 3 * * Tel. 06106-74599 * * * ****************************************************************** I. BEDIENUNG II. WAS SIND GRAFTALE? III. šBER ITERATIVE FUNKTIONSSYSTEME (IFS) UND DEREN PARAMETERSŽTZE IV. LITERATURHINWEIS V. ZUM SCHLUž EINE BITTE DES AUTORS (KEINE ANGST, ES GEHT NICHT UM GELD!) I. BEDIENUNG (am Anfang, da einfach und relativ kurz) ===================================================== Nach dem Programmstart ist unter dem Menupunkt 'Berechnung' der Eintrag 'Graftale' vorgew„hlt (H„kchen). Der vorgegebene Parameter-Satz ent- spricht GRAFTAL1.PAR. Wollen Sie eine der rekursiven Kurven oder IFS darstellen lassen, so w„hlen Sie den entsprechenden Eintrag an (H„kchen) und laden die ent- sprechenden Parameter-S„tze. Die Schneeflocke wird mit den Parametern der Koch-Kurve dargestellt, das Gras mit denen des Zufallszweigs. Abspeichern von Bildern: Sie haben die M”glichkeit, die erzeugten Graphiken entweder im ungepack- ten Screen-Format (32000 Byte, Endung .PIC) oder in einem gepackten For- mat (Extender .PAC) abzuspeichern. Das PAC-Format ist nicht identisch mit dem von STAD! Beim Laden eines Bildes wird eine Dateigr”že kleiner 32000 Byte als PAC-Format interpretiert. Das Komprimieren eines Bildes dauert ca. 20-30 sec, das Dekodieren geht wesentlich schneller. Graftale und rekursive Kurven: Nach dem Starten der Berechnung werden die Parameter angezeigt. Sie k”n- nen natrlich ver„ndert werden. Nach Mausklick auf 'weiter' oder Bet„ti- gung der RETURN-Taste klicken Sie auf die Startposition. Bei den Graf- talen sollte dieser nahe dem unteren Bildschirmrand sein, ebenso bei B„umen, Gr„sern und Zweigen. Rekursive Kurven k”nnen durch einen erneu- ten Klick auf die linke Maustaste unterbrochen werden. Bei Parameters„tzen, die viele Verzweigungen generieren, und gr”žerer Iterationstiefe kann es sein, daž der fr den Code reservierte Platz von 64 kB nicht ausreicht; es wird dann ein entsprechender Hinweis gegeben. Sie haben die M”glichkeit, sich mehr Code-Speicher zu reservieren, so es der Hauptspeicher zul„žt. Fr die meisten Anwendungen kommen Sie mit den 64 kB reichlich aus. Kleinere Einstellungen werden negiert. IFS: Nach dem Starten der Berechnung erscheint eine Datei-Auswahlbox zum La- den eines Parametersatzes. Soll mit einem bereits geladenen Parameter- satz gerechnet werden, so geben Sie KEINE Datei an und gehen mit 'OK' weiter, andernfalls w„hlen Sie einen Datensatz. Zum Start der Berech- nung klicken Sie mit der linken Maustaste irgendwo auf den Bildschirm. Die Berechnung erfolgt so lange, bis erneut ein Klick mit der linken Maustaste durchgefhrt wird (Taste gedrckt halten, bis Menuleiste er- scheint). Der Parametersatz (Bedeutung siehe III.) ist eine Textdatei und kann mit einem Texteditor ver„ndert werden. Zum bequemen Žndern der Parameter kann ein Editor (z.B. TEMPUS) oder Textverarbeitung, die ASCII-Texte bearbeitet (z.B. WORDPLUS) angegeben und dessen Pfad abgespeichert wer- den. W„hlt man nun unter dem Menupunkt 'Parameter' den Eintrag 'Para- meter anzeigen', so wird dieser Editor direkt mit einem w„hlbaren Para- metersatz gestartet. Achtung TEMPUS-Benutzer: Vor Abspeichern eines Parameter-Satzes Text ex- pandieren, da sonst kein korrektes Einlesen der Daten m”glich ist! Parameter-Box der Graftale: Die Zahl der Generationen ist gew”hnlich kleiner als 25. Normalerweise kommt man mit ~10 aus, wie man den Bei- spiel-Parameters„tzen entnehmen kann. Achtung, die Rechenzeit w„chst mit zunehmender Zahl der Generationen exponentiell! Erh”ht man die Generationen-Zahl, so ist das mit einem Wachstum und zu- nehmender Verzweigung der Graftal-Pflanze verbunden. In der Regel mssen Sie daher die Seitenl„nge reduzieren. Bei der Winkel-Einstellung haben Sie verschiedene M”glichkeiten: 1. Zahl der Winkel 0, kein Winkel-Eintrag Bedeutung: Zufallswinkel zwischen -45 und 45 Grad 2. Zahl der Winkel 0, zwei Winkel-Eintr„ge w1 und w2 Bedeutung: Zufallswinkel zwischen w1 und w 3. Zahl der Winkel n, n Winkel-Eintr„ge Bedeutung: Zuf„llige Auswahl unter den n angegebenen Winkel Der Start-Code hat einen enormen Einfluž auf das Aussehen des Graftals. Experimentieren Sie mal herum! Die weitere Bedienung ist selbsterkl„rend. Alle wichtigen Menu-Punkte k”nnen auch ber Kombinationen mit der ALTERNATE-Taste erreicht werden. II. WAS SIND GRAFTALE? (etwas Theorie zum Verst„ndnis) ====================================================== Bei den beigefgten rekursiven Kurven befinden sich auch solche fr B„ume, Zweige und Gr„ser. Eine ungleich professionellere und natr- lichere Darstellung von Pflanzen l„žt sich mit Hilfe von Graftalen er- reichen. Graftale sind wie Fraktale gekennzeichnet durch Selbst„hn- lichkeit und grožem Formenreichtum bei geringfgiger Ver„nderung von Parametern. Fr Graftale gibt es allerdings keine mathematischen For- meln wie bei den Fraktalen, sie werden vielmehr ber sogenannte Pro- duktionsregeln erzeugt. Vielleicht kennen Sie eine der zahlreichen Life-Simulationen, die es als Public Domain fr den Atari gibt. Im Prin- zip wird dort ein frei vorgebbares Punktmuster nach bestimmten Regeln von Generation zu Generation ver„ndert. Žhnlich, nur erheblich kom- plexer, wird auch bei den Graftalen verfahren. Eine vorgegebene Zei- chenfolge wird in ein bestimmtes Bitmuster transformiert, darauf wer- den Regeln angewandt, die wieder zu einer Zeichenfolge fhren, usw. Sehen wir uns einmal die Sache genauer an. Erlaubt sind folgende vier Zeichen: Zeichen Bedeutung --------------------------------------------------------------------- 0,1 Gerade Strecken, L„nge einstellbar [ Beginn einer Verzweigung. Der Winkel wird zuf„llig aus den vorgegebenen Winkel-Einstellungen gew„hlt. ] Ende der Verzweigung Es gibt 8 frei definierbare Produktionsregeln. Zu deren Anwendung werden die Nullen und Einsen des Codes zu einem Triplett erg„nzt (Transfor- mation). Es gelten folgende 4 Transformationsregeln: 1. Eine einzelne 0 oder 1 wird vorn und hinten mit einer 1 erg„nzt. Beispiel: 1 -> 111, 0 -> 101 2. Befinden sich mindestens zwei Zahlen (0 oder 1) hintereinander, so wird einmal vorn und einmal hinten mit einer 1 erg„nzt. Beispiel: 10 -> 110 101, 00 -> 100 001, 11 -> 111 111, 01 -> 101 011 3. Zur Erzeugung des ersten Tripletts zu Beginn einer Verzweigung ([) wird das letzte Element des Hauptstrangs benutzt. Beispiel: 0[10] -> 101 [010 101] 4. Zur Erzeugung des ersten Tripletts nach dem Ende einer Vezweigung (]) wird das letzte Element des Hauptstrangs benutzt. Beispiel: 10[0]1 -> 110 101 [001] 011 Die aus dem Code erzeugten Tripletts werden als Bin„rzahlen interpre- tiert. šber die entsprechende Produktionsregel wird ein neuer Code er- zeugt (Generation 1), der wiederum transformiert wird, usw. Machen wir uns diesen etwas komplizierten Sachverhalt an Hand eines Bei- spiels klar: Produktionsregeln ----------------- Bin„rzahl Regel 000 0 001 1 010 0 011 1 100 0 101 00[01] 110 0 111 0 Startcode: 1 Generation 0 ------------ Transformation: 1 -> Regel 1 -> 111 Produktionsregeln: 111 -> 0 Generation 1 ------------ 0 Transformation: 0 -> Regel 1 -> 101 Produktionsregeln: 101 -> 00[01] Generation 2 ------------ 00[01] Transformation: 00 -> Regel 2 -> 100 001 [01] -> Regeln 2,3 -> [001 011] Produktionsregeln: 100 -> 0 001 -> 1 [001 -> [1 011] -> 1] Generation 3 ------------ 01[11] Transformation: 01 -> Regel 2 -> 101 011 [11] -> Regeln 2,3 -> [111 111] Produktionsregeln: 101 -> 00[01] 011 -> 1 [111 -> [0 111] -> 0] Generation 4 ------------ 00[01]1[00] Transformation: 00 -> Regel 2 -> 100 001 [01] -> Regeln 2,3 -> [001 011] 1 -> Regeln 1,4 -> 011 [00] -> Regeln 2,3 -> [100 001] Produktionsregeln: 100 -> 0 001 -> 1 [001 -> [1 011] -> 1] 011 -> 1 [100 -> [0 001] -> 1] Generation 5 ------------ 01[11]1[01] Transformation: 01 -> Regel 2 -> 101 011 [11] -> Regeln 2,3 -> [111 111] 1 -> Regeln 1,4 -> 111 [01] -> Regeln 2,3 -> [101 011] Produktionsregeln: 101 -> 00[01] 011 -> 1 [111 -> [0 111] -> 0] 111 -> 0 [101 -> [00[01] 011] -> 1] Generation 6 ------------ 00[01]1[00]0[00[01]1] Die Anwendung der Transformations- und Produktionsregeln ergibt 01[11]1[01]00[01][01[11]1] Zur graphischen Darstellung entsprechen Nullen und Einsen jeweils einer Geraden mit einstellbarer Seitenl„nge. Die Verzweigung erfolgt in einem Winkel, der aus den vorgegebenen Einstellungen zuf„llig ausgew„hlt wird. Viel Spaž beim Experimentieren! Beachten Sie den grožen Einfluž des Startcodes auf die Graftale! ======================================================================== III. šBER ITERATIVE FUNKTIONSSYSTEME UND DEREN PARAMETERSŽTZE Mit Feldern Seltsamer Attraktoren k”nnen sehr variable fraktale Gra- phiken erzeugt werden (Standardbeispiel:Sierpinski-Dreieck). Als Berechnungsgrundlagen dienen die Funktionen x'=a11*x+a12*y+b1 y'=a21*x+b22*y+b2 Aus n gegebenen Parameters„tzen a11, a12, a21, a22, b1 und b2 wird ein Datensatz zuf„llig ausgew„hlt, in die Gleichungen eingesetzt und der Punkt P(x',y') bestimmt. Fr den n„chsten Punkt gilt dann x=x' und y=y'. Diese zuf„llige Auswahl und Berechnung wird beliebig oft wiederholt. Gestartet wird mit einem Zufallswert von x und y. Durch die wechselsei- tige Abh„ngigkeit von x',y',x und y wird ein Iteratives Funktionssystem mit fraktalen Eigenschaften gebildet. Geometrisch gesehen werden affin- lineare Transformationen durchgefhrt. Eine ausfhrlichere und mathema- tisch exakte Beschreibung ist z.B. von Tobias Blickle in der ST-Computer 11/91, S.104ff, beschrieben. Parameter: Die mit einem Text-Editor ver„nderbare Parameter-Datei ist eine Textda- tei mit folgendem Aufbau: Zeile 1 beginnt mit fnf Zahlen, die durch Leerzeichen getrennt sind. Sie haben folgende Bedeutung: 1. Zahl: Anzahl der Parameter-S„tze 2. Zahl: x(min) 3. Zahl: y(min) 4. Zahl: x(max) 5. Zahl: y(max) x(min),y(min),x(max) und y(max) bilden das relative (Welt-)Koordinaten- system, dessen Ursprung P(x(min),y(min)) die linke untere (!) Ecke des Bildschirms bildet, P(x(max),y(max)) die rechte obere (!) Ecke. Durch die freie Bestimmbarkeit des Bezugssystems wird die Darstellungsweise sehr flexibel. Optional kann sich an die fnf Zahlen ein freier Text, z.B. die Bildbe- zeichnung, anschliežen. Die L„nge einer Zeile ist auf 80 Zeichen begrenzt. Nach einer Zeile mit den Parameter-Bezeichnungen folgen n Zeilen mit den Datens„tzen, die sich jeweils in einer Zeile befinden mssen. Die einzelnen Parameter haben folgenden Einfluž: a11, a22: Stauchung/Spreizung in X- bzw. Y-Richtung a12, a21: Verzerrung nach rechts/links b1 , b2 : X/Y-Koordinaten der Eckpunkte Wenn Sie ein wenig mit einem einfachen Parametersatz (z.B. FENSTER.PAR) herumspielen, werden Sie bald eigene Fraktale entwerfen k”nnen. Fr ei- gene Entwicklungen ist es oft erleichternd, die Bildschirm-Aufl”sung auf dem relativen Koordinatensystem abzubilden, d.h. x(min)=0, y(min)=400 (! eigentlich 399, doch l„žt sich mit 400 leichter rechnen), x(max)=640 (ebenfalls der Einfachheit halber), y(max)=0 (!). ======================================================================== IV. LITERATURHINWEIS ==================== Graftale und rekursive Kurven sind ausfhrlich in dem Buch Karl-Heinz Becker und Michael D”rfler Dynamische Systeme und Fraktale Vieweg-Verlag behandelt. Wenn Sie sich fr Fraktale (Mandelbrot-, Julia- und Newton- Mengen) interessieren, so haben Sie hier das Buch der Wahl. Denken Sie ja nicht, Sie wžten schon alles ber Apfelm„nnchen; hier werden Sie eines Besseren belehrt! ======================================================================== V. ZUM SCHLUž EINE BITTE DES AUTORS (KEINE ANGST,ES GEHT NICHT UM GELD!) Ich wrde mich sehr freuen, wenn Sie mir gelungene Parameters„tze fr Graftale und/oder IFS zuschicken wrden. Die gesammelten Werke werden allen Teilnehmern zug„nglich gemacht. Also: Wir h”ren voneinander, nicht wahr? ======================== ENDE DES TEXTES ===============================