Zum Thema PLASMA
                       ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ


Nachdem Ihr in der letzten Ausgabe einen Plasmascroller im Quell-
code gefunden habt, der allerdings nicht n„her von uns erl„utert
wurde, greife ich hier das Thema noch einmal auf.

Plasma - Was ist das? Ich nehme mal an, daá die meisten von Euch
wissen, was Plasma ist. Zumindest habt Ihr es bestimmt schon
einmal gesehen. Flieáende Farbverl„ufe. Colorcycling. Schlag-
w”rter, die man direkt mit Plasma in Verbindung bringt.
Diejenigen, die sich unter Plasma berhaupt nichts vorstellen
k”nnen, sollten sich ersteinmal das Beispielprogramm anschauen
(PROGS\PLASMA1.EXE).

Also, jetzt drfte wohl jeder wissen, was gemeint ist. Doch die
Frage, die einen (hoffentlich...) direkt besch„ftigt, lautet: Wie
geht das?!? Tja, welch ein Zufall! Ich wollte n„mlich genau das
gerade erkl„ren...

Plasma ist wirklich nicht schwierig 'herzustellen'. Es ist eine
relativ einfache Idee, die dahinter steckt:

Man nehme einen Bildschirmausschnitt, dessen Eckkoordinaten x1/y1
sowie x2/y2 seien (links oben und rechts unten). Nun setze man
bei (x1+x2) DIV 2 / y1, x2 / (y1+y2) DIV 2, (x1+x2) DIV 2 / y2
und x1 / (y1+y2) DIV 2 jeweils einen Punkt, also immer in die
Mitte jeder Seite des viereckigen Ausschnittes. Die Farbe des
Punktes berechnet sich wie folgt:

    1 - HilfsFarbe1 = x2-x1 + y2-y1
    2 - HilfsFarbe2 = BildeZufallszahl(zwischen 0 und
                      HilfsFarbe * 3) und ziehe HilfsFarbe1 ab
    3 - PixelFarbe = HilfsFarbe2 + (Farbe von x1/y1 +
                                    Farbe von x2/y2) DIV 2.

Das ganze sieht zwar etwas kompliziert aus, ist es aber nicht!
Schaut Euch einfach mal das Listing an, dann werdet Ihr es sehen.
Wozu das ganze? Nunja, ganz sicher bin ich mir da auch nicht.
Allerdings kann man an diesem 'Formelsatz' wirklich nichts „n-
dern. Er ist einfach zur Bestimmung der neuen Farbe gut (damit
ein vernnftiger Farbbergang zustande kommt). Das einzige, was
man doch „ndern kann (ich weiá, ich widerspreche mir selbst), ist
der Faktor 3, der in Schritt zwei verwendet wird. Hier kann man
eigentlich jeden beliebigen Wert einsetzen. Spielt einfach mal
ein wenig damit herum! Bei Werten zwischen 0 und 1 erhaltet Ihr
ein Sirpinski-Dreieck. Bis etwa 5 erscheint ein mehr oder weniger
feines Plasma heraus und darber wird der Plasmaauschnitt immer
grӇer! Aber einfach mal anschauen.

Doch nun: Das war (natrlich) noch nicht alles! Wurden diese vier
Punkte gesetzt, kommt noch ein fnfter hinzu. Und zwar genau in
die Mitte von diesen. Die Farbe von diesem Pixel berechnet sich
dann aus dem Mittelwert der vier anderen Farben. Alles klar?
Hoffentlich.

Nun kommt das Interessante: Das ganze wird iterativ aufgebaut!
Also: Haben wir nun auf dem Bildschirm fnf Punkte und hat man
so den gleichen in vier neue Rechtecke unterteilt, verf„hrt man
mit jedem dieser neuen Rechtecke ebenso. Und mit den dann ent-
standenen wieder und so weiter... Liegen x1 und x2 dann irgend-
wann direkt nebeneinander, setzt eine Abbruchbedingung ein, die
das ganze zum Stoppen bringt.

Tja, um dem Plasma dann noch den letzten Schliff zu geben, sollte
man die Palette neu setzten, damit man dort perfekte Farbverl„ufe
hat. Ansonsten ist es zwar auch ganz nett, doch wie Plasma wirkt
es auf keinen Fall. Wenn man nun, nach dem Setzen der Palette, 
diese auch noch 'cycelt' also immer ver„ndert bzw. 'im Kreise 
dreht', dann kommen m„chtig tolle Effekte heraus.

Das war's auch schon wieder. šber's Palettensetzen und Color-
cycling drfte wohl noch ein anderer Artikel zu finden sein.
šber Plasma steht zumindest in der Pascal-Rubrik noch etwas.

Viel Spaá...........                                  Kemil


PS: Ich hab da noch etwas von Skylab bekommen:

Meine šberlegungen auf einem Schmierzettel waren wie folgt:

Rechteck gegeben [(x1,y1)/(x2,y2)]! (Gedankenrechteck : keine
Linien zeichnen) Auf jeder Seite dieses Rechtecks wird der Mit-
telpunkt (der Seite) als farbiger Punkt gesetzt, wenn er noch
farblos (schwarz) ist. Er erh„lt eine Farbe bestehend aus dem
Mittleweret der Farben der Eckpunkte der (Gedanken-)linie und aus
einem Zufallswert. Die Gr”áe des Zufallswertes h„ngt von der Ent-
fernung der beiden Eckpunkte voneinander ab (je kleiner die Dif-
ferenz, desto kleiner der Zufallswert vom Betrage her gesehen).
Dadurch werden bei nahe bei einanderliegenden Punkten ungef„hr
gleichfarbige Punkte zwischen diese gesetzt. In die Mitte des
Rechtecks wird ein Punkt gesetzt, der als Farbe den Mittelwert
der 4 Punkte, die auf den Rechteckseiten liegen, erh„lt.
Skizze:
                                P1
                (x1/y1) *--------*--------* (x2/y2)
                        |        |        |
                        |    1   |    2   |
                        |        |        |
                     P4 *--------*--------* P2
                        |       P5        |
                        |    3   |    4   |
                        |        |        |
                (x1/y2) *--------*--------* (x2/y2)
                                p3

Wie in der Skizze dargestellt, wird dieses Rechteck nun in 4 wei-
tere aufgeteilt. Fr jedes dieser Rechtecke verf„hrt man wie oben
beschrieben und teilt diese wiederum in 4 weiter Rechtecke auf,
usw...
Das Verfahren wird solange ITERATIV angewendet, bis keine schwar-
zen Pixel mehr vorhanden sind. Der so gefllte Screen wird nun
per Palettencycling "animiert".

                                                 Skylab