Я просмотрел исходный код Raphael.js
, чтобы узнать, как он преобразовал значения RGB в HSB. Я узнал, как он это сделал, и я был в процессе преобразования его в Python, когда я столкнулся с этим симпатичным тройным вложенным тернарным оператором:
H = (C == 0 ? null :
V == r ? (g - b) / C :
V == g ? (b - r) / C + 2 :
(r - g) / C + 4
);
Он бросил меня на цикл, потому что у Python нет такого же тройного оператора, что и Javascript. Я потратил некоторое время на то, чтобы посмотреть на него и, в конце концов, испортил этот несколько более чистый код (используя только if/else):
if (C == 0) {
H = null;
} else {
if(V == r) {
H = (g - b) / C;
} else {
if(V == g) {
H = (b - r) / C + 2;
} else {
H = (r - g) / C + 4;
}
}
}
Была ли моя интерпретация правильной? Я только спрашиваю об этом, потому что, если это неверно, я столкнулся с большой отладкой. Так. "Я получил"?