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.
