Farbverlauf mit Lichtquellen
Übersicht

![]() |
VincentBetreff: Farbverlauf mit Lichtquellen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo !
Ich habe eben einen kleinen schwarz/weis farbverlauf mit punktförmigen lichtquellen gemacht, und ihr komentiert. ich weis nicht, ob das jemand brauchen kann ... vielleicht für highmaps oder weltraumbilder ... kA ... Code: [AUSKLAPPEN] ;Schwarz/Weis Farbferlauf, mit punktförmigen Lichtquellen Graphics 800,600,32,2 SeedRnd MilliSecs() ;Startwerte für Zufallszahlen setzen While Not KeyDown(1) Color 255 , 0 , 0 ;tolle rote Farbe als Malfarbe setzen Rect 99 , 99 , 603 , 403 ;der tolle rote Rahmen Color 255 , 255 , 255 ;Malfarbe für Text (weis) Text 99 , 510 , "ESC zum Beenden" Text 99 , 525 , "beliebige Taste, um neues Bild zu erstellen) spot_zahl = Rand(3,10) ;Anzahl der Lichtquellen Text 99 , 80 , spot_zahl + " Lichtquellen" zufall = Rand(0,1000) SeedRnd zufall ;setzen des Startwertes für die zufällige Erzeugung der Lichtquellen Text 600 , 80 , "SeedRnd " + zufall ;die Bilder sind reproduzierbar, wenn man den gleichen Startwert verwendet Dim spots(spot_zahl,spot_zahl) ;Feld erzeugen, in dem die Eigenschaften der Lichtquellen gespeichert sind ;Eigenschaften der Lichtquellen festlegen For a=1 To spot_zahl spots(a,0) = Rand(100,700) ;Horizontale Position spots(a,1) = Rand(100,500) ;Vertikale Position spots(a,2) = Rand(20,100) ;Itensität / Größe Next LockBuffer ;benötigt für Writepixelfast For x = 100 To 700 For y = 100 To 500 farb = 0 ;Malfarbe auf Ausgagsfarbe (schwarz) setzen For a = 1 To spot_zahl ;Addition von allem Licht auf der aktuellen Position farb = farb + spots(a,2)* ( spots(a,2) / ( Abs( spots(a,0) - x )^2 + Abs( spots(a,1) - y )^2 )^0.5 ) If spots(a,0) = x And spots(a,1) = y Then farb=255 ;das Zentrum der Lichtquelle wird von der obigen Formel falsch berechnet, darum ;"manuel" weis gesetzt ... wert/0 ist nicht definiert Next If farb > 255 Then farb = 255 ;wenn ein Pixel heller als weis sein sollte, so wird seine Farbe auf weis gesetzt WritePixelFast x , y , farb*$10000 + farb*$100 + farb ;Malen des Pixels Next Next UnlockBuffer ;benötigt für Writepixelfast WaitKey ;warten bis eine Taste gedrückt wurde Cls ;Löscht den Bildschirm .... ohne Flip Wend End ;beenden des Programms .. damit umgeht man den doofen "programm ended" Dialog, im Editor |
||
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt ! |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Goil! | ||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja verwendungszwecke gibts da wohl eher wenig aber siehr auf jedefall cool aus. | ||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, keineswegs gar nicht mal so unübel! Gefällt mir! Könnte man vielleicht noch mit einer anderen Farbe machen und dann als Hintergrund für 'ne Highscoreliste oder sowas nehmen. | ||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, respect! Ich find das richtig gut, und ich wüsste auch einige Verwendungszwecke dafür. ![]() |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit dem SeedRnd anzeigen zum nachbauen fand ich gut.
Hab auch gleich mal ein Beispiel dazu gemacht: BlitzBasic: [AUSKLAPPEN] Const lmin = 5 Wer will kann mal lanz auf 3 setzen und das statt der zufallswertberechnung für die lichter nehmen: BlitzBasic: [AUSKLAPPEN] licht(0, 0) = 300 |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das erinnert mich irgendwie an Moleküle. Jetzt müsste man mal rangehen und diese Lichtquellen beweglich machen. Für eine Echtzeitdarstellung wäre es natürlich zu langsam, aber vielleicht könnte man ja ein Video oder ein Animationsbild draus machen. Wäre bestimmt'n cooler Effekt, wenn die Dinger dann aufeinandertreffen. | ||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group