we Ŀ Ŀ ͵ gFraktale in QBasicwe ͵ gby Muffinwe ge Die Erstellung von fraktalen Gebilden mit Hilfe des PC's Es gibt sehr viele verschiedene Methoden, selbsthnliche Fraktale auf einem Computer zu erzeugen. Die besondere Eigenschaft solcher Gebilde ist, da selbst der kleinste Teil eine exakte Kopie eines greren ist. Dazu ein Beispiel: Die Koch-Kurve Ein gutes Beispiel fr die Erzeugung eines Fraktals durch Rekursion ist die Kochsche Schneeflocke. Dieses Fraktal (siehe Abbildung ) wird durch ein rekursives Skalierungs- und Substitutionsverfahren gebildet. Die Konstruktion ist eigentlich relativ simpel: Eine Linie wird in drei gleich groe Teile geteilt. Auf das mittlere Teilstck der Linie wird ein gleichseitiges Dreieck gesetzt und das Mittelstck entnommen. Nun werden wieder alle vier Teilstcke in drei gleich groe Teile geteilt und wieder wird auf jedes mittlere Teilstck ein gleichseitiges Dreieck gesetzt und die dazugehrenden Mittelteil- strecken entfernt. Dieser Vorgang kann dann beliebig oft wiederholt werden. Diese Wiederholungen erzeugen ein Fraktal, die Koch-Kurve, wenn die oben erwhnte Konstruktion an jeder Seite dieser Kurve durchgefhrt wird. Schon bei einer Wiederholung dieser Konstruktion von drei mal werden insgesamt 64 Dreiecke gebildet. Dies kann durch folgende Rechnung be- rechnet werden: ein Grunddreieck = Anzahl aller Dreiecke: 1; Grunddreieck + 3 weitere = Anzahl aller Dreiecke: 4; Dreiecke * 4 weitere pro Dreieck = Anzahl aller Dreiecke: 16; Dreiecke * 4 weitere pro Dreieck = Anzahl aller Dreiecke: 64. Um eine Koch-Kurve zu erzeugen, mu mindestens das Grunddreieck und drei anliegende vorhanden sein. Diese Dreiecke wollen wir einmal "Basisdreiecke" nennen. Wenn diese vorhanden sind, erhlt man eine Koch- Kurve mit einer Tiefe von 1. Um nun die Anzahl der Dreiecke einer Koch-Kurve zu berechnen ist also folgende Formel einsetzbar: Vorhandene_Dreiecke(Wiederholung-1) * 4 = Vorhandene_Dreiecke(Wiederholung) Am Anfang sind die vorhandenen Dreiecke die Basisdreiecke, womit man schon eine Tiefe von 1 erreicht htte. Diese oben genannte Formel mu also Tiefe-1-mal benutzt werden. Das besondere an dieser Kurve bei unendlich vielen Wiederholungen ist, da sie unendlich lang ist. Dies kann folgendermaen erlutert werden: Die Lnge der Ausgangsstrecke sei die Lngeneinheit. Im ersten Itera- tionsschritt entsteht ein um 1/3 Lngeneinheiten lngerer Streckenzug, er ist also 4/3 mal so lang wie die Ausgangsstrecke. Da beim nchsten Schritt jedes Teilstck im selben Verhltnis vergrert wird, wird auch der ganze Streckenzug erneut 4/3 mal so gro. Dasselbe geschieht bei jedem Iterationsschritt. Daher bilden die Lngen der entstehenden Strek- kenzge die Folge 1 LE, 4/3 LE, (4/3) LE, ... Diese Folge strebt aber gegen unendlich. An diesem Fraktal kann der Begriff Selbsthnlichkeit sehr gut gezeigt werden. Man nehme wieder eine Strecke, teile sie in drei gleich groe Teile und ber dem mittleren Drittel wird ein gleichseitiges Dreieck errichtet, woraufhin das mittlere Drittel gelscht wird. Diese Operation fhrt man dann unendlich oft mit jeder der vier gleich langen neu entstanden Strecken durch. Verkleinert man dann das Fraktal in einem geeigneten Mastab, hier 1:3, so entsteht wieder genau das gleiche Bild wieder. Diese Operation kann dann ebenfalls unendlich mal wiederholt werden. Das Sierpinskidreieck Es gibt aber auch andere Methoden, ein Fraktal zu erzeugen. Ein ziem- lich ausgefallenes Beispiel dafr bietet eine Erzeugung eines Sierpin- ski-Dreieckes (siehe Abbildung ). Es werden die drei Hauptecken des Fraktals definiert. Beispielsweise ist der Punkt 1 = P1(0:100), Punkt 2 = P2(0:0) und Punkt 3 = P3(100:0) in einem Koordinatensystem. Eine Ecke wird auch als Anfangspunkt einge- setzt, z.B. P2. Diesen Punkt nennen wir einmal Z. Der Computer denkt sich nun eine Zahl zwischen 1 und 3. Bei einer 1 setzt er zwischen dem Punkt P1 und Z einen weiteren Punkt und dieser wird sofort als Z eingesetzt. Der Computer denkt sich wieder eine Zahl, diesmal z.B. eine 3, und setzt zwischen P3 und Z einen weiteren Punkt, der wiederrum ab sofort als Z eingesetzt wird ... . Dieser Vorgang wird unendlich oft wiederholt. Was dabei entsteht ist ein Sierpinskidreieck mit unendlicher Tiefe. Die Formel fr das Ermitteln des Mittelpunktes ist wie folgt: BL Neuer Y-Wert von Z = (Y-Wert von Ecke + alter Y-Wert von Z) / 2 Neuer X-Wert von Z = (X-Wert von Ecke + alter X-Wert von Z) / 2 WE Um dieses Beispiel einmal zu verdeutlichen, folgt hier ein Programm- beispiel in der Sprache QBasic: BL 'Autor : Haiko Schultz 'Sprache: QBasic 'Datum : 30.11.1997 SCREEN 12 '*** FESTLEGEN DER ECKPUNKTE *** DIM EckeX%(3), EckeY%(3) EckeX%(1) = 20: EckeY%(1) = 20: EckeX%(2) = 20: EckeY%(2) = 420: EckeX%(3) = 420: EckeY%(3) = 420: '*** FESTLEGEN DES ANFANGSPUNKTES *** x% = 20: y% = 20 '*** DER COMPUTER DENKT SICH EINE ZAHL ... *** RANDOMIZE TIMER DO punkt% = INT(RND * 3) + 1 '*** ... ERMITTELT DIE NEUEN KOORDINATEN VON Z ... *** x% = INT((EckeX%(punkt%) + x%) / 2): y% = INT((EckeY%(punkt%) + y%) / 2) '*** ... UND SETZT DEN PUNKT *** PSET (x%, y%), 15 '*** DIESER VORGANG WIRD BELIEBIG OFT WIEDERHOLT *** LOOP UNTIL INKEY$ = CHR$(27) WE Allerdings arbeitet auch dieses Programm nicht ganz perfekt, da es nur 80.000 Bildschirmpunkte (Pixel) zur Verfgung hat. Da aber ein Fraktal eine unendliche Tiefe haben kann, mten auch die Pixel unendlich klein sein und der Computer bruchte fr die Erstellung des Fraktals unendlich lange Zeit.