[ sojic @ 24.08.2004. 00:53 ] @
Kako da računam boje?

Recimo imam plavu pozadinu i želim da stavim beli sloj opacity=60. Znači, ne treba mi sa layere, nego da dobijem matematički novu boju.

Nadam se da je dovoljno jasno.
[ Reljam @ 24.08.2004. 01:03 ] @
Vrlo je jednostavno:

RGB za belu boju: 1.0, 1.0, 1.0
RGB za plavu boju: 0.0, 0.0, 1.0,

Linearna interpolacija izmedju ta dva sa 60%:

RGB: 0.6, 0.6, 1.0

Naravno, ako zelis sve u rasponu od 0-255, onda je to:

153, 153, 255
[ sojic @ 24.08.2004. 01:40 ] @
Šta je i kako se računa interpolacija?
[ sojic @ 24.08.2004. 01:48 ] @
I šta se dešava u slučaju da plava nije čista plava, nego malo tamnija (000099)? Dali pri dodavanje bele plava ide do kraja (0000FF) pa produži na RG?

[ Reljam @ 24.08.2004. 03:02 ] @
Linearna interpolacija:

lerp( a, b, faktor ) = (b - a) * faktor + a;

a - pocetna vrednost (plava)
b - zavrsna vrednost (bela)
faktor - faktor izmedju 0 i 1. 60% = 0.6

Ono sto ti zoves cistom plavom je 0xFF. Normalizovano to je 1.0.
Tamnija plava (0x99) bi onda bila 0x99 / 255 = 0.6.

Kod dodavanja treba da pogledas svaki kanal (boju) odvojeno, i da dozvolis da vrednosti predju 1.0. Slobodno se drzi decimalnih brojeva i sve ce da radi kako treba.

Ajde probaj da izracunas sta se dobija sa:

start (bela): 0xFFFFFF
end (tamno plava): 0x000099