java彩虹雨_彩虹雨源码

彩虹雨

canvas{

position:absolute;

top:0;

left:0;

background-color:black;

}

//initial

var w = c.width = window.innerWidth,

h = c.height = window.innerHeight,

ctx = c.getContext('2d'),

//parameters

total = (w/8)|0,

accelleration = .05,

lineAlpha = .02,

range = 25,

//afterinitial calculations

size = w/total,

occupation = w/total,

repaintColor = 'rgba(0, 0, 0, .04)'

colors = [],

dots = [],

dotsVel = [];

//setting the colors' hue

//and y level for all dots

var portion = 360/total;

for(var i = 0; i < total; ++i){

colors[i] = portion * i;

dots[i] = h;

dotsVel[i] = 10;

}

function anim(){

window.requestAnimationFrame(anim);

ctx.fillStyle = repaintColor;

ctx.fillRect(0, 0, w, h);

for(var i = 0; i < total; ++i){

var currentY = dots[i] - 1;

dots[i] += dotsVel[i] += accelleration;

for(var j = i+1; j < i+range && j < total; ++j){

if(Math.abs(dots[i] - dots[j]) <= range*size){

ctx.strokeStyle = 'hsla(hue, 80%, 50%, alp)'.replace('hue', (colors[i] + colors[j] + 360)/2 - 180).replace('alp', lineAlpha);

ctx.beginPath();

ctx.moveTo(i * occupation, dots[i]);

ctx.lineTo(j * occupation, dots[j]);

ctx.stroke();

}

}

if(dots[i] > h && Math.random() < .01){

dots[i] = dotsVel[i] = 0;

}

}

}

anim();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值