2011-08-05 27 views
22

Her parça için 0.0 - 1.0 aralığında bir RGB rengim var, rengin tersini almak için bir algoritmaya ihtiyacım var, herhangi bir fikri nasıl yapabilirim? Renk bir çarpılmış Alfa değeri 1.0 yerine alfa kullanmasa varsaTers renk hesaplamak için algoritma

cevap

29
newR = 1.0 - r 
newG = 1.0 - g 
newB = 1.0 - b 

:

newR = a - r 
newG = a - g 
newB = a - b 
+0

Soruyu sorduktan sonra bunu kağıt üzerinde yaparken de anlamaya başladım, bu kadar basit ... –

+0

Renk RGBA ise (1, 1, 1, 1)? –

+0

@Ricardo, RGBA'nın tersi (1,1,1,1) RGBA'dır (0,0,0,1). Bunun açık olmadığını gösteren cevap hakkında kafa karıştırıcı bir şey var mı? –

2

Eğer 255 RGB değerlerini kullanıyorsanız, böyle bir şey yapabileceğini:

newR = 255 - r; 
 
newG = 255 - g; 
 
newB = 255 - b;

, bu kavramı anlamak için her değeri 0 ile 255 arasında bir sayı çizgisi olarak düşünün. Bu sayı satırındaki bir sayıyı çizerseniz, bu sayı, numara satırının başlangıcından itibaren o uzaktadır. Bunu reddetmek için, numara, sayı satırının diğer ucuna gitmelidir. Bu algoritma temel olarak, başlangıç ​​çizgisini veya sonunu taşımadan sayı satırını çevirir. Sayı çizgimiz 0 ile 255 arasındadır, bu yüzden eğer sayı 10'dan başlayıp (10) uzaktaysa, artık sondan 10 (245) uzakta olacak, böylece rengi olumsuz etkileyecektir.

İlgili konular