Bir güç ölçer kırmızı ve yeşil arasında bir renk oluşturur?
Java bir oyun yazıyorum ve bir şey vurmak için gidiyoruz ne için bir güç ölçer uygulamak istiyorum.
Ben bir işlev yazın alır bir int arasında 0 - 100, ve dayalı ne kadar yüksek ise, o-ecek dönmek bir renk arasında Yeşil (0 power on ölçek) ve Kırmızı (100 güç ölçeği).
Ses kontrolleri nasıl çalıştığını benzer:
Operasyonu ben Yeşil ve Kırmızı arasındaki renkleri oluşturmak için bir renk Kırmızı, Yeşil ve Mavi bileşenleri hakkında ne yapmam gerekiyor?
Öyleyse, benim çalıştırmak demek, getColor(80) ve geri dönecektir bir orangish renk değerleri R, G, B) veya getColor(10) dönecektir daha fazla Yeşil/Sarı rgb değeri.
R bileşenleri artırmak istiyorum biliyorum, G, B yeni bir renk için değer, ama yukarı veya aşağı Yeşil-Kırmızı renkleri shift olarak gidiyor özellikle bilmiyorum.
İlerleme:
Yukarı gradiant daha çok seviyordum çünkü renk alanı HSB/HSV (ortada koyu kahverengi) ile sona erdi.
Kullandığım fonksiyon (java):
public Color getColor(double power)
{
double H = power * 0.4; // Hue (note 0.4 = Green, see huge chart below)
double S = 0.9; // Saturation
double B = 0.9; // Brightness
return Color.getHSBColor((float)H, (float)S, (float)B);
}
"Güç" 0.0 ve 1.0 arasında bir sayıdır. 0.0 parlak bir kırmızı, 1.0 parlak yeşile döner.
Renk Grafik Java:
CEVAP
Bu çalışması gerekir - sadece doğrusal olarak kırmızı ve yeşil değerleri ölçek. Max kırmızı/yeşil/mavi değeri 255
n
olduğunu varsayarsak 5 ** aralığındadır
R = (255 * n) / 100
G = (255 * (100 - n)) / 100
B = 0
(Tamsayı matematik, Ferrucio için şapka ucu için değiştirilmiş)
Başka bir yolu 120 degrees
(yeşil) sana uygun ne için ** 9, ve döngüsü 0 degrees
(kırmızı) renk kullanımı olacaktır. Bu daha hoş bir degrade verin.
Burada her tekniği gösterimi - üst degrade HSV, RGB, alt kullanır:
Hata ayıklama ve sürüm arasında perfor...
Fark arasında bir WordPress kullanmak`...
Nasıl Vim arabellekleri arasında geçiş...
Güneş Tutulması ANSI renk kodları sayg...
Nasıl Mac'te terminali arasında açık b...