Farbpalette [RiesenProblem-ZwergenCode]
Übersicht

blitzatiusBetreff: Farbpalette [RiesenProblem-ZwergenCode] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Hier erst mal der code von der Farbpalette: Code: [AUSKLAPPEN] Graphics 640,480,32,1
stat=1 r=255 g=0 b=0 Repeat Color r,g,b Plot x,y If stat=1 Then If g=>255 Then stat=2 If stat=1 Then If g =< 255 Then g=g+5 EndIf If stat=2 Then If r=<0 Then stat=3 If stat=2 Then If r=>0 Then r=r-5 EndIf If stat=3 Then If b=>255 Then stat=4 If stat=3 Then If b=<255 Then b=b+5 EndIf If stat=4 Then If g=<0 Then stat=5 If stat=4 Then If g=>0 g=g-5 EndIf If stat=5 Then If r=>255 Then stat=6 If stat=5 Then If r=<255 r=r+5 EndIf If stat=6 Then If b=<0 Then stat=1:y=y+1 :x=-1 If stat=6 Then If b=>0 b=b-5 EndIf x=x+1 If x=306 And y=306 Then Exit Until KeyHit(1) Plot x,y WaitKey() End Sieht eigentlich gut aus, aber ich hätte gerne noch Schwarz und Weiß dabei. Keine Ahnung, wie man das anstellen soll. Weiß jemand eine Lösung? Noch was: Irgendwie gefällt mir das nicht : If stat=1... If stat=2... . Ich glaub, das ganze kann man irgendwie mit sinus und cosinus machen.Oder nicht? Vielleicht wisst ihr etwas. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi quer, daß hat mich nun auch interessiert, so habe ich mal einen Code dazu geproggt. Der Weißverlauf ist nicht ganz korrekt. Hat aber eben an der Tür geklingelt und so bin ich schon bald los. Ich werd aber den Code morgen weiter ausarbeiten... Der Schwarzverlauf ist aber schon mal OK...
Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer FrontBuffer() r#=0 g#=0 b#=0 For x#=0 To 191 For y#=0 To 255 r=0 g=0 b=0 ;Rotanteil If x>128 And x<192 Then r=x-128 If x>000 And x<064 Then r=64-(x-0) ;Grünanteil If x>000 And x<064 Then g=x If x>063 And x<128 Then g=32-(x-96) ;Blauanteil If x>064 And x<128 Then b=x-64 If x>127 And x<192 Then b=32-(x-160) ;Überschuss abschneiden r=r*8:If r>255 Then r=255 g=g*8:If g>255 Then g=255 b=b*8:If b>255 Then b=255 ;Schwarzverlauf If y<128 Then r=r*y/128 g=g*y/128 b=b*y/128 End If ;Weißverlauf If y>127 Then If (-256+y*2)>r Then r=-256+y*2 If (-256+y*2)>g Then g=-256+y*2 If (-256+y*2)>b Then b=-256+y*2 If r>255 Then r=255 If g>255 Then g=255 If b>255 Then b=255 End If Color r,g,b Plot x,y Next Next FlushKeys WaitKey End |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi quer, jetzt bin ich aus dem Kiez zurrückgekehrt... Hier mal ein Farbverlaub mit Schwarz und Weiß... Mit Sin/Cos würde ich es nicht machen. Da hätte man das Problem, daß zum einem die Farbverläufe (Schwarz zu Farbe zu Weiß) nicht gleichmässig 'schnell' verlaufen, und zum anderem du kein richtiges Gelb (Rot/Grün), Türkis (Grün/Blau) und Lila (Blau/Rot) bekommen würdest. Da die 'Farbspitzen' dann in zB 45° nicht ganz ausgesteuert werden. Mit Sin/Cos würde man allerdings nicht so 'abgehackte' Farbverläufe bekommen...
Hier mal der neue Code: Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer FrontBuffer() r#=0 ;Rot g#=0 ;Grün b#=0 ;Blau For x#=0 To 383 For y#=0 To 255 r=0 g=0 b=0 ;Rotanteil If x>256 And x<384 Then r=x-256 If x>000 And x<128 Then r=128-x ;Grünanteil If x>000 And x<128 Then g=x If x>127 And x<256 Then g=64-(x-192) ;Blauanteil If x>128 And x<256 Then b=x-128 If x>255 And x<384 Then b=64-(x-320) ;Überschuss abschneiden r=r*4:If r>255 Then r=255 g=g*4:If g>255 Then g=255 b=b*4:If b>255 Then b=255 ;Schwarzverlauf If y<128 Then r=r*y/128 g=g*y/128 b=b*y/128 End If ;Weißverlauf If y>127 Then r=256-r:r=256-r*(256-y)/128:If r>255 Then r=255 g=256-g:g=256-g*(256-y)/128:If g>255 Then g=255 b=256-b:b=256-b*(256-y)/128:If b>255 Then b=255 End If Color r,g,b Plot x,y Next Next FlushKeys WaitKey End |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier nochmal ein Beispiel mit Sin/Cos... Allerdings, wie man austesten kann, hat man kein richtiges Gelb (~max: 200,200,0) usw...
Code: [AUSKLAPPEN] Graphics 408,204,32,2
SetBuffer FrontBuffer() ra#=0 ;Radius wk#=0 ;Winkel fa%=0 ;Farbe x%=0 ;X-Position y%=0 ;Y-Position r#=0 ;Rot g#=0 ;Grün b#=0 ;Blau ;Farbringe For ra=0 To 100 For wk=0 To 359 x=Sin(wk)*ra y=Cos(wk)*ra r=(128+Sin(wk+000)*127)*(ra/100) g=(128+Sin(wk+120)*127)*(ra/100) b=(128+Sin(wk+240)*127)*(ra/100) Color r,g,b Rect 100+x,100+y,4,4,1 Color 255-r,255-g,255-b Rect 304+x,100+y,4,4,1 Next Next ;Ermiteln While Not KeyHit(1) Color 0,0,0 Rect 190,0,26,36,1 Color 255,255,255 fa=ReadPixel(MouseX(),MouseY()) r=(fa And $ff0000)/$10000 g=(fa And $ff00)/$100 b=(fa And $ff) Text 190,00,Int(r) Text 190,12,Int(g) Text 190,24,Int(b) Delay 10 Wend End |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab mal mit dem Code rumgespielt:
BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group