Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Промежуточные цвета (http://www.flasher.ru/forum/showthread.php?t=212389)

Vlad84 29.01.2016 13:18

Промежуточные цвета
 
Есть ли способ просчета промежуточного цвета между двумя цветами?
Код:

#FF0000 -> a -> b -> c -> #009900

faraday 29.01.2016 13:24

что значит промежуточные цвета? какой у них интервал? это обычные числа, только в 16-тиричном формате
случайный цвет из интервала будет считаться так
Код AS3:

var fromColor:uint=0xff0000;
var toColor:uint=0x009900;
var color:uint=fromColor+Math.floor(Math.random()*(toColor-fromColor))


Vlad84 29.01.2016 13:36

Вложений: 1
Нашел.

Код AS3:

function interpolateColor(fromColor:uint, toColor:uint, progress:Number):uint {
        var q:Number = 1-progress;
        var fromA:uint = (fromColor >> 24) & 0xFF;
        var fromR:uint = (fromColor >> 16) & 0xFF;
        var fromG:uint = (fromColor >>  8) & 0xFF;
        var fromB:uint =  fromColor & 0xFF;
        var toA:uint = (toColor >> 24) & 0xFF;
        var toR:uint = (toColor >> 16) & 0xFF;
        var toG:uint = (toColor >>  8) & 0xFF;
        var toB:uint =  toColor & 0xFF;
        var resultA:uint = fromA*q + toA*progress;
        var resultR:uint = fromR*q + toR*progress;
        var resultG:uint = fromG*q + toG*progress;
        var resultB:uint = fromB*q + toB*progress;
        var resultColor:uint = resultA << 24 | resultR << 16 | resultG << 8 | resultB;
        return resultColor;
}
 
var len:Number = 20;
var step:Number = 1 / len;
for(var i:int = 0; i < len; i++){
        trace(interpolateColor(0x04AA8A, 0xFF2A00, step * i));
}

Параметр progress - это и есть тот промежуточный цвет (число от 0 до 1).


Часовой пояс GMT +4, время: 07:34.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.