चूँकि आपने उल्लेख किया है कि आपको एक स्थिर पृष्ठभूमि मिली है, गेंदों का रंग अभी भी एक यादृच्छिक हो सकता है लेकिन उन्हें कुछ निश्चित सीमाओं पर गिरना पड़ता है जो अभी भी पृष्ठभूमि की तारीफ करते हैं।
मूल बातें। इससे पहले कि हम यह करें कि आपको मूल बातें जानने की जरूरत है। निम्नलिखित रंगों पर विचार करें:
Black #000000 rgb(0,0,0)
Red #FF0000 rgb(255,0,0)
Green #00FF00 rgb(0,255,0)
Blue #0000FF rgb(0,0,255)
Yellow #FFFF00 rgb(255,255,0)
Cyan #00FFFF rgb(0,255,255)
Pink #FF00FF rgb(255,0,255)
Gray #C0C0C0 rgb(192,192,192)
White #FFFFFF rgb(255,255,255)
कलर्स RGB [(0..255), (0..255), (0..255) का मिश्रण ऊपर के रूप में नए रंग बनाता है।
नकारात्मक रंगों के लिए कम्प्यूटिंग नकारात्मक रंग के लिए कम्प्यूटिंग ठीक उसी तरह है जैसे सियान में लाल, बैंगनी में हरा, पीले में नीला।
Red #FF0000 rgb(255,0,0) -> Cyan #00FFFF rgb(0,255,255)
Green #00FF00 rgb(0,255,0) -> Purple #FF00FF rgb(255,0,255)
Blue #0000FF rgb(0,0,255) -> Yellow #FFFF00 rgb(255,255,0)
पूरक रंग
पूरक रंगों की गणना पर संदर्भ के अनुसार: http://serennu.com/colour/rgbtohsl.php
एचएसएल के बारे में
एचएसएल रंग की इन तीन विशेषताओं में से प्रत्येक के लिए एक नंबर देते हुए, उनके रंग, संतृप्ति और लपट के संदर्भ में रंगों को व्यक्त करता है।
रंग पहिया पर कुदाल की स्थिति है, 0 डिग्री से 359 डिग्री तक व्यक्त किया गया है, जो पहिया के 360 ° का प्रतिनिधित्व करता है; 0 ° लाल होना, 180 ° लाल रंग का विपरीत रंग का सियान, इत्यादि।
संतृप्ति रंग की तीव्रता है, यह कितना सुस्त या उज्ज्वल है। निचली संतृप्ति, डलर (ग्रेअर) रंग दिखता है। यह प्रतिशत के रूप में व्यक्त किया जाता है, 100% पूर्ण संतृप्ति, सबसे चमकदार, और 0% कोई संतृप्ति, ग्रे नहीं है।
लाइटनेस कितनी हल्की होती है। संतृप्ति के लिए थोड़ा अलग। रंग में जितना अधिक सफ़ेद होगा उसका लाइटनेस मान जितना अधिक होगा, उतना ही काला, उसका लाइटनेस कम होगा। तो 100% लाइटनेस का रंग सफेद हो जाता है, 0% लाइटनेस का रंग काला हो जाता है, और "शुद्ध" रंग 50% लाइटनेस होगा।
इसे समझाने की तुलना में संतृप्ति और लपट के बीच अंतर को देखना आसान है। यदि आप स्पष्ट करना चाहते हैं, तो कलर कैलकुलेटर पेज पर लाइटनेस और संतृप्ति भिन्नताओं को देखने का प्रयास करें, अपने स्टार्टर रंग के रूप में काफी उज्ज्वल रंग चुनें।
तो एचएसएल संकेतन इस तरह दिखता है, उस क्रम में ह्यू, संतृप्ति और लपट के मूल्यों को देते हुए: टी
लाल: 0 ° 100% 50% पीला गुलाबी: 0 ° 100% 90% सियान: 180 ° 100% 50% यहां चरण हैं:
अपने रंग को HSL में बदलें।
Hue मान को Hue के विपरीत बदलें (जैसे, यदि आपका Hue 50 ° है, तो विपरीत पहिया पर 230 ° - 180 ° और आगे होगा)।
संतृप्ति और लपट के मूल्यों को छोड़ दें जैसा कि वे थे।
इस नए HSL मान को अपने मूल रंग संकेतन (RGB या जो भी हो) में बदलें।
EasyRGB.com जैसी साइटें आपके लिए RGB से HSL या इसके विपरीत जेनेरिक रूपांतरण कर सकती हैं।
संदर्भ में PHP में किया गया प्रोग्रामिंग उदाहरण
RGB से HSL में रूपांतरण
ब्लू # 0000FF आरजीबी (0,0,255) से ऊपर का मूल्य रेड हेक्साडेसिमल 00 + ग्रीन हेक्साडेसिमल 00 + ब्लू हेक्साडेसिमल एफएफ के रूप में प्रस्तुत किया जा सकता है
$redhex = substr($hexcode,0,2);
$greenhex = substr($hexcode,2,2);
$bluehex = substr($hexcode,4,2);
इसे Red Decimal 0 + Green Decimal 0 + Blue Decimal 255 के रूप में भी पेश किया जा सकता है
$var_r = (hexdec($redhex)) / 255;
$var_g = (hexdec($greenhex)) / 255;
$var_b = (hexdec($bluehex)) / 255;
अब इन मानों को rgb2hsl रूटीन में प्लग करें। नीचे उस रूपांतरण के लिए EasyRGB.com के सामान्य कोड का मेरा PHP संस्करण है:
इनपुट $ var_r है, $ var_g और $ var_b आउटपुट के ऊपर से HSL $ h, $ s और $ l के बराबर है - इन्हें फिर से इनपुट मानों की तरह 1 के अंश के रूप में व्यक्त किया जाता है।
$var_min = min($var_r,$var_g,$var_b);ttt
$var_max = max($var_r,$var_g,$var_b);
$del_max = $var_max - $var_min;
$l = ($var_max + $var_min) / 2;
if ($del_max == 0)
{
$h = 0;
$s = 0;
}
else
{
if ($l < 0.5)
{
$s = $del_max / ($var_max + $var_min);
}
else
{
$s = $del_max / (2 - $var_max - $var_min);
};
$del_r = ((($var_max - $var_r) / 6) + ($del_max / 2)) / $del_max;
$del_g = ((($var_max - $var_g) / 6) + ($del_max / 2)) / $del_max;
$del_b = ((($var_max - $var_b) / 6) + ($del_max / 2)) / $del_max;
if ($var_r == $var_max)
{
$h = $del_b - $del_g;
}
elseif ($var_g == $var_max)
{
$h = (1 / 3) + $del_r - $del_b;
}
elseif ($var_b == $var_max)
{
$h = (2 / 3) + $del_g - $del_r;
};
if ($h < 0)
{
$h += 1;
};
if ($h > 1)
{
$h -= 1;
};
};
तो अब हमारे पास एचएसएल मूल्य के रूप में रंग है, चर $ h, $ s और $ l में। इन तीन आउटपुट चर को फिर से डिग्री और प्रतिशत के बजाय इस स्तर पर 1 के भिन्न के रूप में आयोजित किया जाता है। तो जैसे, सियान (180 ° 100% 50%) $ h = 0.5, $ s = 1 और $ l = 0.5 के रूप में सामने आएगा।
अगला विपरीत ह्यू के मूल्य का पता लगाएं, अर्थात, जो 180 ° या 0.5 है, दूर है (मुझे यकीन है कि गणितज्ञों के पास इसे डॉट करने का एक और अधिक सुंदर तरीका है, लेकिन):
विपरीत ह्यू, $ h2 की गणना करें
$h2 = $h + 0.5;
if ($h2 > 1)
{
$h2 -= 1;
};
पूरक रंग का एचएसएल मूल्य अब $ h2, $ s, $ l में है। इसलिए हम इसे वापस RGB (फिर से, EasyRGB.com सूत्र के मेरे PHP संस्करण) में बदलने के लिए तैयार हैं। ध्यान दें कि इनपुट और आउटपुट प्रारूप इस बार भिन्न हैं, मेरी टिप्पणी कोड के शीर्ष पर देखें:
इनपुट पूरक रंग का एचएसएल मूल्य है, $ h2, $ s, $ l में 1 आउटपुट के अंशों को सामान्य 255 255 255 प्रारूप में आरजीबी, $ r, $ g में आयोजित किया जाता है, $ b Hue फ़ंक्शन hue_2_bgb के उपयोग से परिवर्तित किया जाता है, दिखाया गया है इस कोड के अंत में
if ($s == 0)
{
$r = $l * 255;
$g = $l * 255;
$b = $l * 255;
}
else
{
if ($l < 0.5)
{
$var_2 = $l * (1 + $s);
}
elset
{
$var_2 = ($l + $s) - ($s * $l);
};
$var_1 = 2 * $l - $var_2;
$r = 255 * hue_2_rgb($var_1,$var_2,$h2 + (1 / 3));
$g = 255 * hue_2_rgb($var_1,$var_2,$h2);
$b = 255 * hue_2_rgb($var_1,$var_2,$h2 - (1 / 3));
};
// Function to convert hue to RGB, called from above
function hue_2_rgb($v1,$v2,$vh)
{
if ($vh < 0)
{
$vh += 1;
};
if ($vh > 1)
{
$vh -= 1;
};
if ((6 * $vh) < 1)
{
return ($v1 + ($v2 - $v1) * 6 * $vh);
};
if ((2 * $vh) < 1)
{
return ($v2);
};
if ((3 * $vh) < 2)
{
return ($v1 + ($v2 - $v1) * ((2 / 3 - $vh) * 6));
};
return ($v1);
};
और उस दिनचर्या के बाद, हमारे पास आखिरकार $ r, $ g और $ b 255 255 255 (RGB) प्रारूप में हैं, जिसे हम हेक्स के छह अंकों में बदल सकते हैं:
$rhex = sprintf("%02X",round($r));
$ghex = sprintf("%02X",round($g));
$bhex = sprintf("%02X",round($b));
$rgbhex = $rhex.$ghex.$bhex;
$ rgbhex हमारा उत्तर है - हेक्स में पूरक रंग।
चूँकि आपकी रंगीन पृष्ठभूमि नीली है या 0,0,255 HSL है
ह्यू (एच): 240 डिग्री / संतृप्ति (एस): 100% / लाइटनेस (एल): 4.9%
240 के विपरीत एक सर्कल में 60 है, तो RGB में वापस कनवर्ट करें # 181800 का मान देता है