2010-11-20 16 views
11

के पीछे गणित क्या है, मैं प्रत्येक स्लाइस को एक अलग रंग के साथ 12 स्लाइस के साथ एक पाई बनाना चाहता हूं।कलर व्हील

बहुत अधिक रंगीन पहिया एक ही प्रारूप का पालन करने लगता है; उदाहरण: http://www.tigercolor.com/color-lab/color-theory/color-theory-intro.htm

लेकिन रंग उत्पन्न करने के लिए क्या एल्गोरिदम हैं? आरजीबी (थेटा) के पीछे गणित क्या है? निश्चित रूप से इस पर कुछ स्थापित विज्ञान होना चाहिए, लेकिन Google मुझे कोई संकेत नहीं दे रहा है।

+0

यह सिर्फ 'रंग (कोण) = एचएसवी नहीं है (कोण, 1, 1) '? –

+0

ठीक है ... लेकिन उसके पीछे गणित क्या है? –

+2

क्या आपने http://stackoverflow.com/questions/180/function-for-creating-color-wheels पर उत्तरों को देखा है? –

उत्तर

6

http://www.easyrgb.com पर एक नज़र डालें, इसमें कई रंग रूपांतरणों के पीछे एल्गोरिदम हैं। यहां आरजीबी -> एचएसवी एक है।

var_R = (R/255)      //RGB from 0 to 255 
var_G = (G/255) 
var_B = (B/255) 

var_Min = min(var_R, var_G, var_B) //Min. value of RGB 
var_Max = max(var_R, var_G, var_B) //Max. value of RGB 
del_Max = var_Max - var_Min    //Delta RGB value 

V = var_Max 

if (del_Max == 0)      //This is a gray, no chroma... 
{ 
    H = 0        //HSV results from 0 to 1 
    S = 0 
} 
else         //Chromatic data... 
{ 
    S = del_Max/var_Max 

    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 
    else if (var_G == var_Max) H = (1/3) + del_R - del_B 
    else if (var_B == var_Max) H = (2/3) + del_G - del_R 

    if (H < 0) H += 1 
    if (H > 1) H -= 1 
} 
+0

कृपया स्टैक एक्सचेंज कलर थ्योरी साइट अपवॉटिंग/निम्नलिखित पर विचार करें: https://area51.stackexchange.com/प्रस्तावों/110,687/रंग-सिद्धांत –

7

एक रंग चक्र (जैसे मैक ओएस एक्स रंग पिकर के रूप में, नीचे दर्शाया गया) को प्रदर्शित करता है रंग और संतृप्ति (HSV colour space से तीन घटकों के दो)। रंग कोण के साथ बदलता है, और संतृप्ति त्रिज्या के साथ बदलती है। आम तौर पर मूल्य (उर्फ चमक) के लिए एक अलग स्लाइडर है।

Mac OS X colour picker

कैसे आगे पीछे एचएसवी और आरजीबी के बीच परिवर्तित करने के लिए के लिए See Wikipedia। या आपकी प्रोग्रामिंग भाषा पसंद के लिए एक एपीआई हो सकती है। उदाहरण के लिए, पायथन में colorsys library है।

1

यदि आप प्रदान किए गए उदाहरण की तरह एक रंगीन पहिया चाहते हैं (और अधिकांश रंगीन पहियों की तरह आपको एक शिल्प स्टोर पेंट सेक्शन में मिलेगा), जहां लाल हरा और नीला विपरीत विपरीत पीले-नारंगी, पीले रंग के विपरीत बैंगनी है, आदि, तो आप बस निम्नलिखित गणित विरासत रंग पाने के लिए एचएसएल या एचएसवी के रंग को संशोधित करने के लिए कर सकते हैं ...

double ToLegacyHue(double modernHue) { 
    modernHue = ((modernHue % 360) + 360) % 360; // normalize 360 > modernHue >= 0 
    double ret = 0; 
    if(modernHue < 60) { 
     ret = modernHue * 2; 
    } else if(modernHue < 120) { 
     ret = modernHue + 60; 
    } else { 
     ret = (modernHue - 120) * 0.75 + 180; 
    } 
    return ret; 
} 

double FromLegacyHue(double legacyHue) { 
    legacyHue = ((legacyHue % 360) + 360) % 360; // normalize 360 > legacyHue >= 0 
    double ret = 0; 
    if(legacyHue < 120) { 
     ret = legacyHue/2; 
    } else if(legacyHue < 180) { 
     ret = legacyHue - 60; 
    } else { 
     ret = (legacyHue - 180)/0.75 + 120; 
    } 
    return ret; 
} 
संबंधित मुद्दे