***************************** * The Beauties Of Binomials * ***************************** Idee, Realisation und Dokumentation (C) by Gero Zahn 12/90 Ein PD-Programm von Gero Zahn Bergring 27 W-4953 Petershagen Tel.: 05707/2501 Release 1.0 vom 12. 12. 1990 Enstehung der Grafiken: ======================= Wir haben hier ein Programm vor uns, daá Computer-Grafiken von bisher unbekannter Art und Weise erzeugt. Wie die bekannten Mandelbrot'schen "Apfelm„nnchen"-Bilder liegt einmal mehr eine mathematische Formel zugrunde, die in diesem Falle der Stochastik, also der Wahrscheinlichkeits-Rechnung enstammt. Es w„re m”glicherweise sinnvoll, zuerst einmal den Text "MATHE.TXT" (im ASCII-Format) oder "MATHE.DOC" (im WORDPLUS-Format) durchzulesen, danach wird einiges deutlicher ber die Entstehung der Grafiken. Diese Dokumentation enth„lt zwar eine Menge mathematische Fakten, aber sie ist bewuát einfach gehalten, damit nicht nur Mathematik-Professoren sich denken k”nnen, worum es eigentlich gehen soll. Urheber-Rechte: =============== Das Berechnungs-Prinzip kann ich wohl kaum urheberrechtlich schtzen, ein Copyright erhebe ich aber auf die Programme sowie GfA-Basic-Source-Texte dazu und auf die Dokumentation. Sie alle sind in ihrer unver„nderten Gesamtheit komplett PD und drfen in beliebiger Stckzahl vervielf„ltigt, nicht aber kommerziell verbreitet werden. Ein Ver„nderung einzelner Files ist nicht gestattet, wenn die ver„nderten Produkte noch weitergegeben werden sollen. Wer ein Update von mir haben m”chte, kann dies gegen 10,- DM und eine formatierte Leerdiskette bei mir erhalten, sofern bis dahin eine erschienen ist. Vorgesehen ist ein benutzerfreundlicheres Programm, bereits in Vorbereitung ist eine PC-Version, die auf allen g„ngigen Grafikkarten (bzw. die, die Turbo-Pascal 4.0 untersttzt) funktionieren wird. Gewnschte User-Resonanz: ========================= Wer mich kennt weiá, daá ich den Source-Text zu meinen Programmen normalerweise nie direkt beilege. Bei SHOWBIN.BAS und CUTBIN.BAS w„re es aus Verst„ndnisgrnden wahrscheinlich auch nicht unbedingt n”tig gewesen. Warum also diesmal? Der Grund fr die Ausnahme liegt auf der Hand: Ich suche optimierte Algorithmen, also zum Beispiel eine neu implementierte, in Assembler geschriebene Binomial-Funktion. Auáerdem wrden mich andere Ann„herungen an die Fakult„ts-Funktion als meine lineare interessieren. Wer immer also Verbesserungen vorzuschlagen hat, mag dies gern ausprobieren, das Grundgerst ist ja vorhanden. Die Ver„nderten Versionen interessieren mich brennend, vor allem die erw„hnte Assembler-Version. In meinem Namen weiterverbreitet werden drfen diese ver„nderten Fassungen allerdings nicht ohne meinen Segen. Das neue, verbesserte Release gibt's dann natrlich kostenlos, sofern eine Leer-Diskette beilag. Wer interessante Grafiken herausgefunden hat, kann mir die auch gerne zuschicken, entweder auf Diskette oder in Form der Bild-Daten. Eine solche Diskette kommt natrlich postwendend mit dem neuesten Release oder sofern dies noch nicht erschienen ist, mit anderer PD-Software von mir zurck. Programm-Erkl„rungen: ===================== BINOMIAL: --------- Hierbei handelt es sich eigentlich um das Herzstck dieses Programm-Relases: Mit diesem Programm k”nnen Binomial-Grafiken gezeichnet werden. Hierzu ist natrlich die Eingabe von Bild-Daten erforderlich, den Ausschnitt, den Bereich, die Farbanzahl usw. betreffend. Hierbei wird keine Zeit und kein Speicherplatz darauf verwendet, die Eingaben auf Fehlerfreiheit zu untersuchen. Es ging mir nicht darum, ein besonders ansprechendes Programm zu schreiben, sondern auch den Source-Text noch verst„ndlich zu halten. Die Eingaben mssen in folgender Reihenfolge erfolgen: "k-min" / "k-max" - Bereich, in dem k horizonzal variiert wird "n-min" / "n-max" - Bereich, in dem n vertikal variiert wird "probability" - fr das Bild konstante Wahrscheinlichkeit "exponent" - die n-te Nachkommastelle "x-start" / "y-start" - Bildschirm-Koordinate, mit der die Binomial- Grafik links oben beginnen soll "x-len" - Breite der zu zeichnenden Grafik "y-len" - L„nge der zu zeichnenden Grafik "colors" - Anzahl der zu verwendenden Farben "name" - File-Name, unter dem das fertige Bild sp„ter abgespeichert werden soll Nicht alle Wert-Kombinationen sind sinnvoll. Benutzt man zum Beispiel "1" fr "exponent" (also soll die 1. Nachkommastelle benutzt werden) ist es ziemlich unsinnig, 16-farbige Bilder zu verlangen, da sowieso nur 10 gezeichnet werden. Ein Fehler ist es aber nicht. "x-start" / "y-start" sowie die durch "x-len" / "y-len" entstehenden Rechtecke sollten im Bereich der aktuellen Bildschirm-Aufl”sung liegen. Man tut gut daran, sich bei der Namens-Wahl des abzuspeichernden Bildes an gewisse Konventionen zu halten, zum Beispiel die Extension ".LOW" fr 16-farbige Bilder, ".MED" fr 4-farbige Bilder und ".HIG" fr monochrome Bilder. Nach dem Zeichnen der Grafik (und ggf. nach dem Abspeichern) fhrt einen ein Tastendruck wieder zum Desktop. CONVBIN: -------- Dieses Programm ist dazu da, fertige Bilder, die von BINOMIAL abgespeichert worden sind, auf dem Bildschirm darzustellen. Eine Fileselector-Box erscheint, und man kann ein Bild anklicken. Es k”nnen allerdings nur Bilder angezeigt werden, die auch in der aktuellen Grafik-Darstellung entstanden sind (also 16-farbige Bilder in niedriger Aufl”sung usw.). Danach erscheint eine zweite Fileselector-Box, die die Kennung "*.DOO" offeriert. Klickt man auf "Abbruch", so passiert nichts weiter. Gibt man einen Namen ein, so wird der Bildschirminhalt im DOODLE-Format (z. B. MAXON-PD S-1) ab. Das ergibt zumindeset fr monochrome Bilder einen Sinn, da dieses Format (auch Screen-Format genannt) viele andere Programme verarbeiten k”nnen. Nachdem die Grafik auf dem Bildschirm erschienen und ggf. abgespeichert worden ist, fhrt einen ein Tastendruck wieder zurck zum Desktop. CUTBIN: ------- Mit diesem Programm kann man sich die Bild-Daten eines Ausschnittes aus einer bereits vorhandenen Grafik ausrechnen lassen, den man neu zu berechnen gedenkt. Wie bei CONVBIN erscheint zuerst eine File-Selector-Box, in der man ein Bild anklicken sollte, daá in der aktuellen Grafik-Aufl”sung entstanden ist. Erscheint dies auf dem Bildschirm, muá man der Maus einen Eckpunkt des gewnschten Ausschnittes definieren, indem man an gewnschter Steller eine Maustaste drckt. Hat man dies geschafft erscheint ein blinkendes Rechteck, das man durch einen weiteren Mausclick definieren kann. Damit ist die Auswahl des Ausschnittes abgeschlossen und sofort erscheinen die Bild-Daten des soeben definierten Bild-Teiles. Bei Druck auf

werden diese Daten auf einem Text-Drucker ausgegeben, jede andere Taste fhrt zurck zum Desktop. Abspeicherungs-Format der Bilder: ================================= Die Bild-Daten werden von BINOMIAL auf folgende Weise abgespeichert bzw. von CONVBIN und CUTBIN eingelesen: - L„nge des abgespeicherten Bildausschnittes (GfA MKI-Format) - Bildausschnitt (GfA SGET-Format) - k-min (GfA MKF-Format) - k-max (MKF) - n-min (MKF) - n-max (MKF) - propability (MKF) - exponent (MKI) - x-start (MKI) - y-start (MKI) - x-len (MKI) - y-len (MKI) - colors (MKI) MKI's sind von GfA-Basic zu Strings konvertierte 2 Byte-Integers, MKF's sind von GfA-Basic zu Strings konvertierte Reals, und zwar in ein GfA-Basic-eigenes 6-Byte langes Format. Hinter allen Zahlen folgt eine Zeilenende-Kennung in Form von " ", hinter dem Bildausschnitt (SGET-Format) entf„llt dieser. Hardware-Vorraussetzungen: ========================== Alle drei Programme BINOMIAL, SHOWBIN und CUTBIN laufen in alle drei Bildschirmaufl”sungen des ST / Mega ST. M”glich sind also: 640 X 400 monochrom (Modus 2) 640 X 200 4-farbig (Modus 1) 320 X 200 16-farbig (Modus 0) Bilder, die in einer Aufl”sung entstanden sind, k”nnen nur in der jeweils identischen angezeigt und weiterverwendet werden. Beim Zeichnen und anzeigen wird der jeweils aktive Grafik-Modus und die gerade aktive Farb-Palette verwendet. (Damit habe ich mir die Arbeit natrlich sehr leicht gemacht.) Die Programme prfen also gar nicht erst, in welcher Aufl”sung sie arbeiten. Wie es mit den neuen Grafik-Modi des TT steht, kann ich so einfach nicht sagen. Theoretisch sollten sich die Programme starten lassen, ich benutze keinerlei schmutzige Tricks, die am GEM vorbei gehen. Sofern die GfA-Basic-Befehle "Color" und "Plot" funktionieren, drfte alles weitere glatt gehen. Problematischer wird's schon beim Abspeichern der Bilder: Die Bilder werden mit dem Befehl "Get" ausgeschnitten und mit "Put" aufgeklebt, auáerdem benutzt CONVBIN den Befehl "SGet". Da diese eigentlich auch nur GEM-Adaptionen sind, sollte alles glatt gehen, aber es k”nnten genauso gut Probleme auftauchen, denn die Bildschirm-Ausschnitte werden in String-Variablen gespeichert. Das heiát, sie drfen nicht l„nger werden als 32767 Bytes. Das ist bei den normalen ST-Grafik-Modi gew„hrleistet, ein kompletter Bildschirm ben”tigt gut 32000 Bytes. Was aber in h”heren Aufl”sungen passiert, weiá ich nicht. Ebenso weiá ich nicht, wie die Programme auf Hyper-Screen reagieren. "Einfach ausprobieren" heiát da die Devise. Allzu viel Speicher ist nicht n”tig, die Programme sind alle recht kompakt. Tips fr das Suchen nach interessanten Ausschnitten: ==================================================== Es gibt eine Grundregel, die aber auch ihre Ausnahmen hat: Je niedriger k und n sind, desto kleiner sind regelm„áige Strukturen. Man kann aber so pauschaul nie sagen, wo genau interessante Strukturen zu finden sind, es variiert zu sehr in Abh„ngigkeit von der Wahrscheinlichkeit und Nachkommastelle. Gut ist immer ein Experiment, bei dem ein recht groáer Bereich (-20 bis +20 fr n und k) dargestellt wird. Es muá ja nicht gleich die volle Bildschirm-Aufl”sung sein. Grunds„tzlich gilt: Unregelm„áige Bereiche bringen bei n„herem Hinsehen (also beim Zeichnen eines kleinen Ausschnittes) meistens irgendwann Regelm„áigkeiten zu Tage. Auch kleinste Bereiche fr k und n k”nnen noch interessant sein. Eine weitere, etwas erstaunliche Regel: Hat man ein Bild gezeichnet, ver„ndert es sich h”chstwahrscheinlich, wenn man eine andere Bild-Aufl”sung verwendet. Ver„ndert man zus„tzlich die Farb-Anzahl, k”nnen v”llig andere Bilder entstehen. Warum das so ist? Stellen wir uns vor, wie variieren k und n jeweils von 1 bis 2 bei einem qudratischen Feld von 100 X 100 Punkten. Dargestellt werden nun die Werte 1.00, 1.01, 1.02 usw. Ver„ndern wir die Aufl”sung nun auf 200 X 200 Punkte, so werden viel mehr Punkte dargestellt, n„mlich 1.000, 1.005, 1.010, 1.015, 1.020 usw. Sollten nun in den Werten 1.XX5 Strukturen auftreten, die die vorherigen berlagern (ich weiá aus Erfahrung: Es ist sehr wahrscheinlich), so ergibt sich ein m”glicherweise v”llig anderes Bild. Allein interessant ist schon die Ver„nderung einer der beiden Werte x-len und y-len. Die Verwendung von Farben kann ein- und dasselbe Bild bei gleicher Aufl”sung (z. B. 200 X 200) v”llig anders aussehen lassen. Kommt dann noch eine andere Aufl”sung hinzu, ist das natrlich noch interessanter. Die n„chste Grundregel: Je gr”áer der Exponent (also je weiter die relevante Stelle des Ergebnisses hinter dem Komma steht), desto feiner sind die Strukturen. Ich hoffe, der ST strzt nicht aus puren Rechenungenauigkeiten ab. Weitere Regeln mag jeder fr sich selbst aufstellen. Abschlieáende Bemerkungen: ========================== Ich war doch sehr erstaunt darber, wie schnell man unerwartete Ergebnisse erh„lt, wenn man sich nicht bierernst an die Regeln der Mathematik h„lt und sie stattdessen anf„ngt, sie zu erweitern. Wenn jemand eine logische Erkl„rung fr die regelm„áigen, aber chaotischen Strukturen kennt, m”ge mir diese alsbald mitteilen. Bis die Tage dann also, ich hoffe auf User-Resonanz ... Gero Zahn, Release 1.0, 12. 12. 1990