আমি একটি জাভা গেম লিখছি এবং আপনি কতটা শক্তভাবে অঙ্কুর করতে চলেছেন তার জন্য আমি একটি পাওয়ার মিটার প্রয়োগ করতে চাই।
আমাকে একটি ফাংশন লিখতে হবে যা 0 - 100 এর মধ্যে একটি অন্তর্নিহিত লাগে এবং যে সংখ্যাটি কতটা বেশি তার উপর ভিত্তি করে এটি সবুজ (পাওয়ার স্কেলে 0) এবং লাল (পাওয়ার স্কেলের 100) এর মধ্যে একটি রঙ ফেরত দেবে।
ভলিউম নিয়ন্ত্রণ কীভাবে কাজ করে তার সমান:
সবুজ এবং লাল মধ্যে রঙ উৎপন্ন করতে কোন রঙের লাল, সবুজ এবং নীল উপাদানগুলিতে আমার কী অপারেশন করা উচিত?
সুতরাং, আমি বলতে চালাতে পারি, getColor(80)
এবং এটি একটি কমলা রঙের (আর, জি, বি এর মানগুলি) getColor(10)
ফিরে আসবে বা এটি আরও সবুজ / হলুদ আরজিবি মান প্রদান করবে।
আমি জানি যে নতুন রঙের জন্য আমার আর, জি, বি মানগুলির উপাদানগুলি বাড়ানো দরকার, তবে সবুজ-লাল থেকে রঙ পরিবর্তন হওয়ার সাথে সাথে কী উপরে বা নীচে যায় তা আমি বিশেষভাবে জানি না।
অগ্রগতি:
আমি এইচএসভি / এইচএসবি রঙের স্থানটি ব্যবহার করে শেষ করেছি কারণ আমি গ্রেডিয়েন্টটি আরও ভাল পছন্দ করেছি (মাঝখানে কোনও গা brown় বাদামী নয়)।
আমি ব্যবহৃত ফাংশনটি ছিল:
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 এর মধ্যে একটি সংখ্যা। ০.০ একটি উজ্জ্বল লাল ফিরবে, ০.০ একটি উজ্জ্বল সবুজ ফিরবে।
জাভা হু চার্ট: