Félig random szinek generálása? C++/arduino
Hello
Építettem egy RGB ledCube-t és arra csinálok most animációkat.
Hogy tudnék a legkönnyebben szép, élénk random színeket csinálni?
Nem kell kód, csak valami ötlet, tapasztalat.
Ha az összes szín random akkor elég "csúnya" lesz, mert közelít a fehérhez és nagyon halvány.
Jobban szeretném futásidőben generálni, mint egy tömbből random kiszedni, még 1930 byte helyem van, ebbe bele kell férni még pár animációnak.
Elég ha logikát ajánlotok hozzá, nem kell kód.
most ez van, nincs kész.
A színek strukturában lesznek definiálva
Én valahogy úgy csinálnám, hogy a három színből egy vagy kettő magas értékű, a többi alacsony. Azt random generálnám, hogy mely színek legyenek magasak értékek.
Nincs sok variáció, RGB:
001
010
100
110
101
011
Ezekből random választasz, és az adott helyiértéktől függően vagy 0-126 vagy 127-255 között generálsz újabb random értékeket. Így elvileg nem lesz sem túl sötét, sem túl világos az eredmény.
Van egy színtér amit HSV-nek neveznek.
3 értékből ad meg egy színt:
* Hue (árnyalat): milyen árnyalatú színről van szó, hol helyezkedik el a "színkeréken" ( [link] 0 és 360 között
* Saturation (telítettség): mennyire telített a szín: 0 és 1 között (ha 0 akkor teljesen szürkeárnyalatos, ha 1, akkor teljesen színes: [link] )
* Value (érték, azaz világosság): mennyire világos - fehér vagy fekete - a szín: 0 és 1 között
Ez a színtér átalakítható RGB-be:
A te esetedben, a telítettség és a világosság 1 lesz, csak a színárnyalat lesz a befolyásoló tényező, az határozza meg a piros/zöld/kék színek arányát:
szóval kell egy véletlenszerű színárnyalat érték, amit át kell alakítanod RGB értékbe.
Csináltam egy kis Javascript-példát:
a lényeges részt a hueToRGB() függvény végzi,
Bemenetként vár egy 0.0 és 1.0 közötti véletlen lebegőpontos számot (az árnyalat mértékét), és visszaadja annak RGB értékeit egy tömbben (az R, G, B értékek 0 és 255 között változnak).
Köszönöm mindenkinek!
Utolsó ez a hsv nagyon jól néz ki!
Majd holnap kipróbálom, mára már elég volt a programozásból
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!