html实现颜料效果,JS基于HTML5的canvas标签实现炫目的色相球动画效果实例

本文实例讲述了JS基于HTML5的canvas标签实现色相球效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

f4725f3328bd5bd72ea375771a81ccc7.png

具体代码如下:

JS canvas标签制作色相球

var canvas,ctx,max,p,count;

window.οnlοad=function(){

var a,b,r;

canvas = document.getElementsByTagName('canvas')[0];

ctx = canvas.getContext('2d');

canvas.width=canvas.height=400;

ctx.fillRect(0,0,400,400);

max=80;

count=150;

p=[];

r=0;

for(a=0;a

p.push([Math.cos(r),Math.sin(r),0]);

r+=Math.PI*2/max;

}

for(a=0;a

for(a=0;a

rus();

};

function rus(){

var a,b,c,d,e,s,tim,p2,xp,yp,xp2,yp2,x,y,z,x1,y1,z1;

ctx.globalCompositeOperation = "source-over";

ctx.fillStyle="rgba(0,0,0,0.03)";

ctx.fillRect(0,0,canvas.width,canvas.height);

ctx.globalCompositeOperation = "lighter";

tim=count/5;

for(e=0;e<3;e++){

tim*=1.7;

s=1-e/3;

a=tim/59;

yp=Math.cos(a);

yp2=Math.sin(a);

a=tim/23;

xp=Math.cos(a);

xp2=Math.sin(a);

p2=[];

for(a=0;a

x=p[a][0];y=p[a][1];z=p[a][2];

y1=y*yp+z*yp2;

z1=y*yp2-z*yp;

x1=x*xp+z1*xp2;

z=x*xp2-z1*xp;

z1=Math.pow(2,z*s);

x=x1*z1;

y=y1*z1;

p2.push([x,y,z]);

}

s*=120;

for(d=0;d<3;d++){

for(a=0;a

b=p2[d*max+a];

c=p2[((a+1)%max)+d*max];

ctx.beginPath();

ctx.strokeStyle="hsla("+((a/max*360)|0)+",70%,60%,0.15)";

ctx.lineWidth=Math.pow(6,b[2]);

ctx.lineTo(b[0]*s+200,b[1]*s+200);

ctx.lineTo(c[0]*s+200,c[1]*s+200);

ctx.stroke();

}

}

}

count++;

requestAnimationFrame(rus);

}

PS:由于这里使用了HTML5的相关技术,建议读者使用火狐、谷歌、opera等支持HTML5效果较好的浏览器运行该上述代码。

希望本文所述对大家JavaScript程序设计有所帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值