Zum Thema PLASMA Nachdem Ihr in der letzten Ausgabe einen Plasmascroller im Quell- code gefunden habt, der allerdings nicht nher von uns erlutert 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. Flieende Farbverlufe. Colorcycling. Schlag- wrter, die man direkt mit Plasma in Verbindung bringt. Diejenigen, die sich unter Plasma berhaupt nichts vorstellen knnen, sollten sich ersteinmal das Beispielprogramm anschauen (PROGS\PLASMA1.EXE). Also, jetzt drfte wohl jeder wissen, was gemeint ist. Doch die Frage, die einen (hoffentlich...) direkt beschftigt, lautet: Wie geht das?!? Tja, welch ein Zufall! Ich wollte nmlich genau das gerade erklren... 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 vernnftiger Farbbergang 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 darber wird der Plasmaauschnitt immer grer! Aber einfach mal anschauen. Doch nun: Das war (natrlich) noch nicht alles! Wurden diese vier Punkte gesetzt, kommt noch ein fnfter 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 fnf Punkte und hat man so den gleichen in vier neue Rechtecke unterteilt, verfhrt 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 Farbverlufe 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 verndert bzw. 'im Kreise dreht', dann kommen mchtig tolle Effekte heraus. Das war's auch schon wieder. ber's Palettensetzen und Color- cycling drfte 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 erhlt eine Farbe bestehend aus dem Mittleweret der Farben der Eckpunkte der (Gedanken-)linie und aus einem Zufallswert. Die Gre des Zufallswertes hngt 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 ungefhr 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, erhlt. 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. Fr jedes dieser Rechtecke verfhrt 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 gefllte Screen wird nun per Palettencycling "animiert". Skylab