Цветовая гамма на основе пользовательского диапазона?в HEX? - PullRequest
1 голос
/ 25 августа 2010

Как создать идеальную цветовую гамму в Hex?скажем от желтого до красного, в зависимости от высоты объекта?это правильный путь для достижения этого или есть лучший способ без необходимости конвертировать его в конце?:

var r:int = 255;
var b:int = 0;
var maxHeight:int = 52;
var minHeight:int = 21;

var scale:int = 255 / (maxHeight-minHeight);

var g:int = 255 - ((object.height-minHeight) * scale);

var hexColor:uint = RGBtoHEX(r,g,b);

private function RGBtoHEX(r:int, g:int, b:int) :uint
{
return r << 16 | g << 8 | b;
}

1 Ответ

1 голос
/ 25 августа 2010

Вот функция, которая позволяет вам найти значение цвета между двумя другими, основываясь на диапазоне 0-1. Я думаю, что это будет соответствовать вашим потребностям

private function getBetweenColourByPercent(value:Number = 0.5 /* 0-1 */, highColor:uint = 0xFFFFFF, lowColor:uint = 0x000000):uint {
    var r:uint = highColor >> 16;
    var g:uint = highColor >> 8 & 0xFF;
    var b:uint = highColor & 0xFF;

    r += ((lowColor >> 16) - r) * value;
    g += ((lowColor >> 8 & 0xFF) - g) * value;
    b += ((lowColor & 0xFF) - b) * value;

    return (r << 16 | g << 8 | b);
}
...