Я просмотрел исходный код 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;
}
}
}
Верна ли моя интерпретация? Я спрашиваю об этом только потому, что если это неверно, я столкнусь с кучейотладки. Так. Я "понял"?