Kezdőoldal » Számítástechnika » Programozás » Félig random szinek generálása...

Félig random szinek generálása? C++/arduino

Figyelt kérdés

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.


[link]


most ez van, nincs kész.

A színek strukturában lesznek definiálva



2017. dec. 15. 14:24
 1/6 anonim ***** válasza:
Random generálsz R-t, G- meg B-t és a tartományt egy algoritmus alapján változtatod.
2017. dec. 15. 14:52
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

É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.

2017. dec. 15. 16:45
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
...De lehet úgy is, hogy az első két érték alapján a harmadik tartományát szűkíted le, hogy ne essen mind a három ugyanabba a világosság sávba.
2017. dec. 15. 17:12
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

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:

[link]


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:

[link]

szóval kell egy véletlenszerű színárnyalat érték, amit át kell alakítanod RGB értékbe.

2017. dec. 15. 18:19
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Csináltam egy kis Javascript-példát:

[link]

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).

2017. dec. 15. 20:07
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

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

2017. dec. 15. 23:04

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!