RGB 彩虹函数

来源:互联网 发布:利比亚知乎 编辑:程序博客网 时间:2024/03/29 03:05

转载于:http://www.tmirun.com/rgb-%E5%BD%A9%E8%99%B9%E5%87%BD%E6%95%B0/

下面这个函数用于彩虹RGB生成,原理参照这个图片:


<script>
/*reference page http://academe.co.uk/2012/04/arduino-cycling-through-colours-of-the-rainbow/*/
function rainbow(num){
    var num = num || 12;
    var step = 1 / (num/3);
    var colors = [];
    for(var i =0; i<num; i++){
        var r = channelColor(i*step*2 + 2);
        var g = channelColor(i*step*2);
        var b = channelColor(i*step*2 + 4);
        colors.push([r*255, g*255, b*255]);
    }
    function channelColor(num) {//0-1 inclement; 1-3 keep top, 3-4 declement, 4-6 keep bot;
        /*outPut 0-1*/
        while(num >= 6){
            num = num-6
        }
        if(num >=0 && num <1)
            return num;
        if(num >=1 && num <=3)
            return 1;
        if(num >3 && num <4)
            return 1-(num%1);
        if(num =>4 && num <6)
            return 0;
    }
    return colors;
}
</script>

0 0
原创粉丝点击