hm, sinds kort bezig met een sterrenhemel (3 RGB kanalen, waarvan de RGB instelbaar is en dan de brightness per kanaal regelbaar is, zodat de kleur intact blijft)
Nu heb ik wat standaard effecten zoals faden van kanaal naar kanaal en rollen van kleuren, en wil nu nog een twinkel effect toevoegen.
Een random waarde tussen 0-255 kiezen en deze op de pwm uitgang gooien werkt opzich redelijk, maar oogt nogal trubbelig, ik denk dat ik de huidige pwm waarde op moet slaan, een nieuwe genereren en dan in een x aantal stappen hiernaart moet faden.
Op CO vond ik het volgende;
Op zich is het idee prima, maar ik denk dat je al snel op negatieve waardes uitkomt en dus kleursprongen/intensiteit sprongen maakt.
Is er een simpeler beter algoritme, of zit ik gewoon in een verkeerde hoek te denken?
/edit:
In principe kan ik < of > wel gebruiken om op of neer te laten faden zonder problemen, maar ik heb het idee dat ik stomweg iets over het hoofd zie (plus het kost een bult aan sram om voor 12 pwm kanalen alles te onthouden, en dan nog de seriële buffers, booleans, tellers etc etc...)
Nu heb ik wat standaard effecten zoals faden van kanaal naar kanaal en rollen van kleuren, en wil nu nog een twinkel effect toevoegen.
Een random waarde tussen 0-255 kiezen en deze op de pwm uitgang gooien werkt opzich redelijk, maar oogt nogal trubbelig, ik denk dat ik de huidige pwm waarde op moet slaan, een nieuwe genereren en dan in een x aantal stappen hiernaart moet faden.
Op CO vond ik het volgende;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Do ___rseed = Timer0 'Random seed uit de timer halen Trood = Rnd(255) 'Willekeurige nieuwe kleur maken Tgroen = Rnd(255) Tblauw = Rnd(255) Diff = Trood - Rood 'Verschil tussen nieuwe en oude kleur Staprood = Diff / 40 'Faden in 40 stappen Diff = Tgroen - Groen Stapgroen = Diff / 40 Diff = Tblauw - Blauw Stapblauw = Diff / 40 For I = 1 To 40 Stop Timer0 'Zorgen dat de PWM niet kan onderbreken als ik de nieuwe waardes instel Rood = Rood + Staprood Groen = Groen + Stapgroen Blauw = Blauw + Stapblauw Start Timer0 Waitms 10 Next I Loop |
Op zich is het idee prima, maar ik denk dat je al snel op negatieve waardes uitkomt en dus kleursprongen/intensiteit sprongen maakt.
Is er een simpeler beter algoritme, of zit ik gewoon in een verkeerde hoek te denken?
/edit:
In principe kan ik < of > wel gebruiken om op of neer te laten faden zonder problemen, maar ik heb het idee dat ik stomweg iets over het hoofd zie (plus het kost een bult aan sram om voor 12 pwm kanalen alles te onthouden, en dan nog de seriële buffers, booleans, tellers etc etc...)
[ Voor 8% gewijzigd door LiquidSmoke op 20-02-2010 22:11 ]