BESCHREIBUNG FRACTAL4.KCC Version 2.0 f}r KC 85/4 MARIO LEUBNER Markersdorf ******************************************************************** Das Programm FRACTAL4 stellt eine komfortable Weiterentwicklung der Programmidee von Hannes Gutzer aus dem Buch "Kreativ mit dem Com- puter" dar. Das Rahmenprogramm sowie die Berechnung der Bilder wur- den in KC-PASCAL geschrieben. Die Peripherie-Routinen sind als reine Assemblerprogramme eingef}gt worden. Das Programm l{uft nur auf dem KC85/4, da es im hochaufl|sendem Grafikmodus arbeitet. Es nutzt die M|glichkeit des Computers, pixelweise vier Farben darzustellen. Desweiteren sind die beiden RAM-B{nke auf der Adresse 8000H f}r die Zwischenspeicherung von Bildschirminhalten erforderlich. îTheoretischesâ "Den Begriff Fractal hat B. Mandelbrot um 1980 eingef}hrt. Er geht auf das lateinische Adjektiv fractus und das Verb frangere zur}ck, bedeutet also: zerbrechen, unregelm{~ige Bruchst}cke erzeugen, irre- gul{r." ╦1═ Die Berechnung von Bildern nach mathematischen Gesetzm{~igkeiten ist unter Computerfreaks von breitem Interesse. Besonders reizvoll ist dabei das "Apfelm{nnchen". Es ist wohl auch das bekannteste die- ser Figuren. Die Berechnungsgrundlage bildet ein doppelt variables Gleichungs-System der Form: Aên+1ç = F(Aênç, Bênç, X, Y) Bên+1ç = G(Aênç, Bênç, X, Y) Genutzt wurden die Funktionen: A = AÄ2ü - BÄ2ü + X B = 2 ⌐ A ⌐ B - Y "Sie erzeugen das bekannte Apfelm{nnchen. Es wurde erstmals um 1980 von Mandelbrot dargestellt und erhielt erst sp{ter von den Computer- freaks seinen Namen, weil man es sich aus einer Vielzahl kleiner und gro~er [pfel aufgebaut vorstellen kann." ╦1═ A und B sind die Iterationsvariablen, X und Y die Koordinatenwerte einer komplexen Zahlenebene. F}r A und B werden Startwerte gew{hlt, die den Koordinatenwerten entsprechen. Die Ergebnisse der Rechnungen werden solange wieder in die Gleichungen eingesetzt, bis eine Ent- scheidung zur Konvergenz (gegen einen endlichen Wert strebend) oder Divergenz (gegen unendlich) getroffen werden kann. Das Verfahren nennt man Iteration. F}r Konvergenz und Divergenz sind Kriterien festzulegen. Es wird angenommen, wenn der Wert Z=AÄ2ü+BÄ2ü > 4 ist, dann strebt die Zahl nach unendlich und sie geh|rt nicht zur Mandelbrot-Menge. Wird nach der von uns vorgegebenen Zyklenzahl (Iterationstiefe) der Wert nicht erreicht, so geh|rt dieser Punkt zur Mandelbrot-Menge. ò Bei der Farbdarstellung wird nun die Iterationstiefe in vier Berei- che unterteilt, und je nach erreichtem Wert der Bildpunkt farbig dargestellt. Die zweite M|glichkeit besteht darin, die erreichte Iterationstiefe durch vier zu teilen und den Bildpunkt entsprechend dem verbleibenden Rest einzuf{rben. Hier entspricht die Darstellung nicht mehr der reinen Mandelbrotmenge, es entstehen aber teilweise {sthetische Bilder. Die reizvollsten Bilder erh{lt man mit hohen Iterationstiefen, doch die Rechenzeiten sind unvertretbar hoch. Iterationstiefen zwischen 100 und 300 sind ein guter Kompromi~. Da jedes Bild nach mathema- tischen Gesetzm{~igkeiten unter Ausschlu~ jeglichen Zufalls berech- net wurde, l{~t sich bei Kenntnis des Real- und Imagin{rbereiches sowie der Iterationstiefe jedes Bild nachvollziehen. Man kann beliebig in's "Detail" gehen und die Werte entsprechend variieren. Der letzte Vorschlag nach V|lz (siehe unten) entspricht beispielsweise einer 150000-fachen Vergr|~erung! îZum Programmâ FRACTAL4 ist selbststartend und gibt nach dem Start zun{chst ein paar Hinweise zur Funktion. Danach wird der gel|schte Bildschirm und am rechten Rand eine Men}leiste angezeigt. Der linke Teil des Bildschirmes mit 256⌐256 Pixeln ist stets f}r die Anzeige der Grafiken reserviert. Alle Bedienungen, Ein- und Ausgaben werden am rechten Bildschirmrand angezeigt. Æ ┌────────────────────────────────┬───┬───┐ │ │ 1 │ 2 │ │ ├───┼───┤ │ │ 3 │ 4 │ │ ├───┼───┤ │ │ 5 │ 6 │ │ ├───┼───┤ │ Grafikfenster │ 7 │ 8 │ │ ├───┼───┤ │ 256⌐256 Pixel │ 9 │ 10│ │ ├───┼───┤ │ │ 11│ 12│ │ ├───┼───┤ │ │ 13│ 14│ │ ├───┼───┤ │ │ 15│ │ └────────────────────────────────┴───┴───┘ æ îDie Men}leisteâ ]ber die 15 Ikons werden alle Funktionen des Programms aufgerufen. Gesteuert werden die Ikons durch die Cursortasten. Die Anwahl einer Funktion geschiet durch die Bet{tigung der ENTER-Taste. Die aktuell gew{hlte Funktion wird farblich hervorgehoben. Bei verschiedenen Funktionen wird w{hrend der Ausf}hrung ein Teil der Men}leiste ge- l|scht, um Platz f}r andere Ein- oder Ausgaben zu gewinnen. Ein Abbruch der Funktionen 1 bis 4, 11 und 13 kann mit der Taste "Q" erreicht werden. ò 1. zeichnet ein Fractal der Mandelbrotmenge (Start in 0,0) nach {sthetischen Gesichtspunkten. 2. zeichnet das reine Fractal der Mandelbrotmenge (Start in 0,0) 3. wie 1., jedoch Start in X beliebig (Fortsetzung halbfertiger Fractale) 4. wie 2., jedoch Start in X beliebig (Fortsetzung halbfertiger Fraktale) 5. Magnetbandausgabe: Nach Nameneingabe wird der Bildschirminhalt auf Kassette ausge- geben. 6. Magnetbandeingabe: Ein Bildinhalt, der unter Punkt 5 auf Kassette abgelegt wurde, kann wieder eingelesen werden. Es sind auch Bildschirminhalte einlesbar, die mit dem BASIC-Programm FRAC-MC abgespeichert wurden, diese erscheinen aber dann in schwarz/wei~. 7. Diskettenausgabe: Speicherung des Bildinhaltes auf Diskette. Ist kein Floppy angeschlossen erscheint "FL-ERROR". Ansonsten ist ein acht- stelliger Dateiname einzugeben. Das Programm f}gt automatisch den Dateityp FRC an. Ist eine Datei mit dem angegebenen Namen bereits auf der Diskette, so fragt das Programm zur Sicherheit, ob diese Datei }berschrieben werden soll. ("Y" f}r ]berschrei- ben und "N" f}r Abbruch eingeben!) 8. Disketteneingabe: Wenn kein Floppy angeschlossen ist, erfolgt die Fehlermeldung "FL-ERROR". Ansonsten sucht das Programm auf der Diskette eine Datei mit dem eingegebenen Namen und dem Dateityp FRC. Ist eine solche vorhanden, so wird sie eingelesen. Ist diese Datei nicht vorhanden, dann wird weitergesucht nach einer Datei mit dem selben Namen, aber Dateityp IRM. Das k|nnen Dateien sein, die einen direkten Speicherabzug des Pixelspeichers ab 8000H bis mindestens A000H darstellen. Solche Dateien werden z.B. auch vom BASIC-Programm FRAC-MC erzeugt. Sind bei der Datei mit dem Typ IRM nicht 2 Adressen (Anfangs- und Endadresse) vorhanden oder ist die erste Adresse nicht 8000H oder ist die Endadresse kleiner als 0A000H, dann erscheint AD-ERROR. 9. Teilen des Bildes durch Linien in 16 gleiche Teilbilder. Damit ist bei der Suche nach interessanten "Fractalgebieten" eine bes- sere Orientierung am Bildschirm m|glich. Ein nochmaliger Aufruf der Funktion hebt die Teilung wieder auf. 10. Austausch Bild 1 mit Bild 2: Wechsel zwischen den Bildern 0 und 1 des Computers. 11. Grauwertdruck positiv: Der Ausdruck von Bildinhalten ist zur Zeit nur }ber ein mit Cen- tronics-Schnittstelle nachger}stetes Joystickmodul M008 m|glich. Bei wei~en Fl{chen wird Drucknadel gesetzt. ò 12. Austausch Bild 1 mit Bild 3: aktuelles Bild wird mit erstem Teil der RAM-Bank ausgetauscht. 13. Grauwertdruck negativ: Wie 11., jedoch bei schwarzen Fl{chen wird Drucknadel gesetzt. 14. Austausch Bild 1 mit Bild 4: aktuelles Bild wird mit zweitem Teil der RAM-Bank ausgetauscht. 15. Zur}ck zum CAOS-Betriebssystem. Im CAOS-Men} steht jetzt das Men}wort "FRACTAL". Damit kann das Programm erneut gestartet werden. Bild 1 und 2 werden bei Programmstart gel|scht. Die Bilder 3 und 4 bleiben unver{ndert. Beim erstmaligen Aufruf des Programms haben diese Bildspeicher deshalb eine zuf{llige Belegung. Das st|rt aber nicht, da nach Aufruf der Men}punkte zum Neuzeichnen oder Laden das Grafikfenster gel|scht wird. Nach einem Programmabbruch (auch nach RESET) bleiben die Bilder 3 und 4 erhalten. Sofern nicht durch ande- re Programme (z.B. BASIC-Interpreter oder WordPro) die Inhalte der RAM-Bank ver{ndert werden, kann ein Neustart von FRACTAL4 jederzeit die in der RAM-Bank gespeicherten Bilder 3 und 4 wieder zug{nglich machen. îFunktionen der System-LEDâ Da das Zeichnen von Fractalen eine langwierige Angelegenheit ist, ist es ratsam, das Fernsehger{t oder den Monitor nicht w{hrend des gesamten Programms eingeschaltet zu lassen. Zur schnellen Informa- tion }ber den Stand des Programms dient dann noch die System-LED. Sie zeigt folgendes an: - LED an bedeutet, da~ der Rechner mit der Berechnung von Bildern besch{ftigt ist. - LED aus bedeutet, da~ sich der Rechner in einer Peripherie-Rou- tine z.B. Drucken oder Bildaustausch befindet. - LED blinkt bedeutet, da~ sich der Rechner in der Men}auswahl be- findet. Wenn Sie also die Berechnung gestartet haben, wird die LED leuchten. Sie schalten jetzt den Monitor ab und brauchen ihn erst wieder zuzu- schalten wenn die LED wieder blinkt. Nat}rlich k|nnen Sie auch vorzeitig die Berechnung abbrechen. Dabei ist es g}nstig, sich den Stand der X-Position zu notieren. Sie k|n- nen damit jederzeit das Zeichnen fortsetzen. Es ist auch immer zu empfehlen, nach einer Rechenzeit von etwa einer Stunde das bis dahin erzeugte Bild abzuspeichern und danach die Berechnung fortzusetzen. ò Vorschl{ge f}r Fractale: ──────────────────────── Der Bereich der Mandelbrot-Menge liegt etwa zwischen real -2 ... 1 und imagin{r -1.5 ... 1.5 Interessant sind jedoch erst die Randgebiete des Apfelm{nnchens. Hier einige Vorschl{ge: ┌──────────────────────┬───────────────────────┬───────────────────┐ │ real │ imagin{r │ Iterations- │ │ von bis │ von bis │ tiefe │ ├──────────────────────┼───────────────────────┼───────────────────┤ │ 0.26 0.27 │ 0 0.01 │ 100 ┐ nach │ │ -0.76 -0.74 │ 0.01 0.03 │ 100 ├ Hubbard │ │ -1.26 -1.24 │ 0.01 0.03 │ 100 ┘ │ ├──────────────────────┼───────────────────────┼───────────────────┤ │ 0.3083 0.3277 │ -0.042 -0.02942 │ 200 ┐ nach │ │ -0.75373 -0.75293 │ -0.04719 -0.0467 │ 250 ├ Dittmar/ │ │ -0.7672 -0.7654 │ 0.1002 0.1015 │ 200 ┘ Wynands │ ├──────────────────────┼───────────────────────┼───────────────────┤ │ -1 -0.7 │ 0.1 0.3 │ 100 ┐ │ │ -0.79 -0.74 │ -0.025 0.135 │ 150 │ │ │ -0.77 -0.74 │ 0.097 0.12 │ 300 │ │ │ -0.749 -0.741 │ 0.11 0.116 │ 1000 │ nach │ │ -0.748 -0.745 │ 0.114 0.1163 │ 500 ├ V|lz │ │ -0.7459 -0.7445 │ 0.11215 0.1132 │ 1000 │ │ │ -0.7455 -0.7415 │ 0.1129 0.1131 │ 1000 │ │ │ -0.74545 -0.74573 │ 0.11298 0.113018 │ 1000 │ │ │ -0.745445 -0.74542 │ 0.112999 0.113016 │ 1000 ┘ │ ├──────────────────────┼───────────────────────┼───────────────────┤ │ -0.7672 -0.7652 │ 0.0999 0.1016 │ 150 ┐ nach │ │ -0.7692 -0.7632 │ 0.0979 0.1036 │ 150 ┘ Gutzer │ ├──────────────────────┼───────────────────────┼───────────────────┤ │ -0.1375 -0.175 │ -1.05 -1 │ 200 kl. Apfel │ │ 0.255 0.275 │ -0.01 0.01 │ 100 │ │ 0.26 0.265 │ -0.005 0 │ 120 │ └──────────────────────┴───────────────────────┴───────────────────┘ Literaturhinweise: ────────────────── ╦1═ Horst V|lz: BASIC effektiv programmieren, auch mit Kleincompu- tern. Verlag Die Wirtschaft, Berlin ╦2═ Hannes Gutzer: Kreativ mit dem Computer. Urania-Verlag Leipzig, Jena, Berlin ╦3═ B. Mandelbrot: Die fraktale Geometrie der Natur. Akademie- Verlag Berlin òÆ ┌────────────────────────────────────────────────────────────────────┐ │ îèFractal-Bilderàâ │ ├────────────┬───┬──────────────────┬──────────────────┬───────┬─────┤ │ Dateiname │Art│ real (von-bis) │imagin. (von-bis) │Iterat.│ Zeit│ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ │GESAMT1 .FRC│ 1 │-2 1 │-1.5 1.5 │ 150 │ 4:40│ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤ └────────────┴───┴──────────────────┴──────────────────┴───────┴─────┘æ ──────────┼────────────────