Hur man gör ordentlig Rainbow och slumpmässiga färger med RGB-färgmodellen (1 / 5 steg)
Steg 1: Att HSV eller inte HSV
Den viktigaste HSV prestationen är att föra samman två färg världar: ljusavgivande en (RGB) och ljusreflekterande en (CMYK). Dessa världar är mycket olika: till exempel blanda rött och grönt på skärmen resulterar i ren gul, men försök blanda dem på papper och du får en smutsig blot. HSV är således ganska användbart för grafiska formgivare – de kan göra allt i en modell och vara någorlunda säker på att resultatet kommer att se samma sak på skärmen eller på papper. Men som med alla andra universella lösningar, vissa begränsningar införs, alltså människor som arbetar uteslutande med tryckt mönster måste förlita sig på CMYK och människor som arbetar med lysdioder är bättre med RGB-modellen. Det är bara alldeles bättre lämpad för ljusavgivande källor!
Jag vill gräva lite djupare i detta. HSV står för nyans, mättnad och värde (eller ljusstyrka). Nyans är en cirkel, den har värden från 0 till 360. Mättnad och värde mäts i procent (0 till 100). Inte precis passar för en värld av byte... Och vad mer, två av dessa värden är nästan meningslös när man arbetar med lysdioder, eftersom de är gjorda för komplexa högupplöst mönster, inte enstaka pixlar (aka RGB lysdioder).
Mättnad kan användas för att producera mjuk, pastell färger, utan de komplicerade beräkningar som behövs med RGB-modellen. Men med lysdioder inte vill Pastell färger (de ser ut precis som olika nyanser av vitt, faktiskt): du behöver dina färger så ljusstark och tydlig som möjligt, så mättnad är 100% nästan hela tiden (exklusive animation/omvandling stunder, men de görs med algoritmer, mer om det senare).
Med ljusstyrka kan du uppnå vissa mörka färger på skärmen. Lägre ljusstyrka i rött (H = 0) och du få vinrött, lägre ljusstyrka i orange (H = 40) och få bruna. Samma sak med lysdioder och du får samma röda och gula färger, bara lite svagare; Det finns inget sådant som en "brun LED". Du ser djupt mörkt röd på skärmen eftersom det finns olika färger närvarande där. Prova att fylla den med mörkt röda helt, stänga av alla lampor och du ser en röd rektangel; du kommer inte att kunna berätta om det är "burgundy" eller "scarlet" på grund av avsaknad av hänvisningar. Samma med lysdioder: även om du har en knippa av dem, de är fortfarande separat. Således är användning av värde i HSV modell med RGB-lysdioder begränsad till inställningen global ljusstyrka, fadeouts och övergångar; allt detta kan enkelt göras i RGB genom enkel samtidig delning tillämpas på varje kanal.
En annan sak som gör HSV värde/ljusstyrka värdelös med lysdioder är att dioder, till skillnad från datorskärmar, inte kalibreras och är långsam; deras ljusstyrka är inte linjär. På 50% ser de nästan samma som till 100 procent, som i själva verket är mycket bra, eftersom det hjälper kontroll förmåga förtäringen.
Som lämnar oss med nyans: en trevlig cirkel som innehåller alla färger i en regnbåge i en snygg 0-360 ° sekvens. Verkar som producerar en regnbåge med det är enklaste tänkbara: enkelt för (int k = 0; k < 360; k ++) cykeln kommer att göra susen. Vad kan vara fel med det?
Se bilden med normala HSV grafen ovan. Modellen gjordes att innehålla alla möjliga färger, anser det gula (HSV = 60, 100, 100) att ha både rött och grönt av RGB-modellen på högsta (255, 255, 0). Med RGB LED innebär det att både röda och gröna dioder är fullt på. Vilket innebär att varje sammansatt färg (gul, cyan, magenta) förbrukar två gånger mer ström än en bas en (röd, grön, blå). Inte bra, särskilt om du arbetar med långa LED strips eller en matris av RGB-ljusdioder driv vid USB. Den andra grafen ("Power-medvetna HSV") ser bättre ut, men det är inte ren nyans av HSVEN, och lättare genomföras med RGB-modellen.
Tredje diagrammet visar en sinusvåg regnbåge. Enligt min mening är det den bästa, eftersom det ger djupare bas färger och saknar spikar. Och det kan genomföras endast i RGB-modellen. Vidare till nästa steg.