Jeśli chcesz koło kolorów, podobnie jak podany przykład (i jak większość kół kolorów znajdziesz w dziale farby sklepu rzemieślniczego), gdzie czerwony jest przeciwny zielony i niebieski jest przeciwny żółto-pomarańczowy, fioletowy przeciwny żółty, itp., możesz po prostu wykonać następującą matematykę, aby zmodyfikować odcień HSL lub HSV, aby uzyskać dotychczasowy odcień ...
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;
}
Czy to nie jest po prostu 'kolor (kąt) = HSV (kąt, 1, 1) '? –
ok ... ale jaka jest matematyka za tym? –
Czy spojrzałeś na odpowiedzi na http://stackoverflow.com/questions/180/function-for-creating-color -wheels? –