Source file: /~heha/hs/kcemu/kcswberg.zip/DISK/FRACTAL4.TXW


	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│
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       ├────────────┼───┼──────────────────┼──────────────────┼───────┼─────┤
       └────────────┴───┴──────────────────┴──────────────────┴───────┴─────┘æ
──────────┼────────────────