मैं एक जावा गेम लिख रहा हूँ और मैं एक बिजली मीटर को लागू करना चाहता हूं कि आप कितनी मेहनत से कुछ शूट कर रहे हैं।
मुझे एक फ़ंक्शन लिखने की ज़रूरत है जो 0 - 100 के बीच एक इंट लेती है, और यह संख्या कितनी अधिक है, इसके आधार पर यह ग्रीन (पावर स्केल पर 0) और रेड (पावर स्केल पर 100) के बीच एक रंग लौटाएगा।
वॉल्यूम नियंत्रण कैसे काम करता है:
ग्रीन और रेड के बीच रंगों को उत्पन्न करने के लिए मुझे एक रंग के रेड, ग्रीन और ब्लू घटकों पर क्या ऑपरेशन करने की आवश्यकता है?
तो, मैं कह सकता हूं, getColor(80)
और यह एक नारंगी रंग (आर, जी, बी में इसके मूल्य) या getColor(10)
जो एक अधिक ग्रीन / येलो आरजीबी मान लौटाएगा।
मुझे पता है कि मुझे नए रंग के लिए R, G, B मान के घटकों को बढ़ाने की आवश्यकता है, लेकिन मुझे यह विशेष रूप से पता नहीं है कि ग्रीन-रेड से रंगों के शिफ्ट होने पर क्या होता है।
प्रगति:
मैंने एचएसवी / एचएसबी रंग अंतरिक्ष का उपयोग करके समाप्त किया क्योंकि मुझे धीरे-धीरे बेहतर पसंद आया (बीच में कोई अंधेरा भूरा नहीं)।
मेरे द्वारा उपयोग किया जाने वाला कार्य था:
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);
}
जहां "पावर" 0.0 और 1.0 के बीच की संख्या है। 0.0 एक चमकदार लाल लौटाएगा, 1.0 एक चमकदार हरा लौटेगा।
जावा ह्यू चार्ट: