2011-01-06 22 views

cevap

3

oldukça iyi bir tahmindir

if (B>R) { 
    color=cool 
} else { 
    color=warm 
} 

gibi geliyor. Bunu kullanarak renk tekerleğini kontrol edebilirsiniz: http://www.colorzilla.com/firefox/

+1

Belki de iyi bir yaklaşım olabilir, ancak herhangi bir doğrulukla bunu belirlemek istiyorsanız, bir yerdeki yeşil değeri hesaba katmanız gerekecek ... Örneğin, (50, 200, 0) güzel bir orta yeşil renk üretir. Muhtemelen "serin" bir renk olarak kabul edilir. –

+0

Yeşili görmezden geldiğince rahat hissetmedim, ama bana göre 'sıcak' ve 'cool' gibi sınıflandırmalar 'doğrulukla belirleme' biraz fazla mühendislik olabilir ... sanırım gereksinimleri bağlıdır. –

+0

Öznellik hakkında kesinlikle haklısınız. Kültür, dil aracılığıyla, insanların aynı renkteki farklı renkler ve değişkenler olarak bildiklerini belirler. Örneğin, bazı diller yeşil ve mavi için aynı kelimeyi ve hatta mavi ve siyah için aynı kelimeyi kullanırlar (örn. Http://en.wikipedia.org/wiki/Distinguishing_blue_from_green_in_language). Ancak, insanlar aslında farklı ya da aynı renkleri görüp görmedikleri başka bir konudur (örneğin, http://en.wikipedia.org/wiki/Linguistic_relativity_and_the_color_naming_debate). –

41

Bağlantılı olduğunuz görüntüyü "sıcak" ve "soğuk" olarak referans alarak ele alırsak, aşağıdakileri elde ederiz.

Colour wheel

  • renk sıcak

    tamamen kırmızı (R = 255, Y = 0, B = 0).
  • En soğuk renk tamamen mavi (R = 0, G = 0, B = 255).

Yani, daha fazla R var, daha sıcak renk ve daha fazla B var, renk daha serin. G, her biri giderek daha sıcak olan turkuaz, yeşil ve sarı tonlarını alır. G sıfır olduğunda, R ve B değiştiğinde dairenin sol alt köşesinde hareket edersiniz. G 255'e yaklaştıkça, R ve B değiştiğinde sağ üst köşegeni geçersiniz. Bununla birlikte, bitişik sıcak ve soğuk renklerin içlerinde farklı miktarda yeşil vardır. Diyagonal çizginin hemen altındaki kırmızı, hemen üzerindeki kırmızıdan daha az yeşile sahiptir. Diyagonal çizginin hemen altındaki mavi, hemen üstündeki maviden daha az yeşile sahiptir. Bu renk tekerleği, özellikle spektrumun mavi ucundaki tüm bu RGB alanını temsil etmiyor gibi görünüyor.

Nihayetinde, ılık ve soğuk olarak algıladığınız şey, monitör ayarlarınıza ve ışık koşullarınıza bağlıdır. Birçoğu da sizin algı ve bilişinizdir - ne düşündüğünüz sıcak veya soğuktur. Bir görüntüde, renk kontrastları kararınızı etkileyecektir. Net bir şekilde serin bir rengin yanında bir "arada" renk, sıcak görünecek, ama aynı renk açıkça sıcak bir renk yanında ise, serin görünecektir. Bu renk çarkı bakabilirsiniz: Burada

colourwheel, her bir 24-bit renk (8 R, G ve B her biri için bit), ve üst için RGB değerlerini gösterilmektedir, sağ , alt ve sol renkler gösterilir. Gözlerime göre "sıcak" dan daha "güzel" renkler var. Umarım bu, RGB değerlerinin, serin ve sıcak renkler olarak algıladığınız şey için ne olduğuna karar vermenize yardımcı olur.

Bonus: Yukarıdaki resimde, renkleri, ton, doygunluk ve değer (HSV) renk modelinde ifade edilen renkleri de görebilirsiniz. Renk temel olarak rengi kodlar. Doygunluk, rengin ne kadar "dolu" olduğunu kodlar - daha az doygunluk, daha "kasvetli" hale getirir, yani. beyaz. Değer ne kadar karanlık olduğunu kodlar - daha az değer onu daha siyah yapar ve aynı zamanda doygunluğun beyazlığını daha da gri yapar. Ton, 0'dan 360'a kadar gider ve bir dairenin açısına karşılık gelir, 0 tamamen kırmızı, 90 bir tür neon yeşili, 180 parlak mavi, 270 mavimsi mor ve 360 ​​tekrar kırmızıya döner. S ve V, 0 ila 100 arasındadır ve tam gölgeyi etkileyecektir - bu örnekler S = V = 100 ile.

Gözlerime göre 0-80 ve 330-360 aralığındaki H değerleri sıcakken, H> 80 ve H < 330 ise soğuktur (yaklaşık olarak).

Renk seçiciyi en sevdiğiniz boya programında açmak isteyebilirsiniz.Genellikle HSV ve RGB'yi yan yana gösterebilir ve bir renk tekerleği ile oynamayı ve HSV ve RGB sayılarındaki etkileri görebilmenizi sağlar. Zaten yoksa, GIMP'u öneririm. Bu cevap için rakamları almak için kullandığım renk tekerine sahip.

Bonus 2: Yukarıdakilerin tümü, neyin sıcak ve neyin soğuk olduğuna dair öznel bir değerlendirme olduğunu varsayar. Renk sıcaklığının objektif ölçümünü yapmanın tek yolunun onu ölçmek ve sıcaklık skalasında ifade etmektir. Genellikle Kelvin kullanılıyor gibi görünüyor. Bu ölçü sadece rengin gölgesini değil, aynı zamanda parlaklığını (ya da ne kadar ışık yaydığını) da hesaba katar. Modern bir monitörünüz varsa, muhtemelen seçim yapmak için bazı Kelvin değerlerine sahip bir sıcaklık ayarı vardır. Beyazınızın (beyaz dengesi) sıcaklığını bildiğiniz sürece, ekranınızdaki her bir RGB renginin sıcaklığını hesaplamak mümkündür. Ancak, bu hesaplama çok karmaşık ve nasıl yapılacağını bilmiyorum. Daha fazla bilgi veya renk bilimi üzerine bir kitap için Bruce Lindbloom iyi bir kaynak bulabilirsiniz. Ama bu size bir soru ile umduğundan fazlasını sanırım ... ;-)

+1

+1 Zorlu bir soruna mükemmel bir cevap. –

+1

Basitçe söylemek gerekirse: HSV/HSL'ye dönüştürüp basitçe H'ye göre sıcaklığı belirle. Yeşil ile ne yapacağını düşünmeye gerek yok :-) – user562374

+0

@ user562374: Tamamen katılıyorum ve bir cevap olarak gönderdim (Örnek kod ile tamamlandı), sorunun açık bir şekilde RGB renk uzayını çağırması dışında. –

1

zaten cevap ancak bu eklemeniz gerekir: Eğer sonra bu fiziksel sıcaklık ve renk bağımlılıkları ile ilgileniyorsanız

Aradığınız ölçek:

Black body Temperature color

O belirli bir sıcaklıkta ait karacisimden yayan ışık rengidir. Astronomi yılında bu yıldız rengi sınıflandırması için kullanılır (BV color index gibi).

Ayrıca dolaylı sıcaklık ölçümleri için de kullanılabilir.

İlgili konular