html制作随机多个小球,HTML5/Canvas 3D小球体随机运动模拟

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

window.οnlοad=function(){

var canvas = document.getElementById("canvas");

var context = canvas.getContext("2d");

context.translate(250,250);

context.shadowColor="#000";

//设置阴影水平偏移

context.shadowOffsetX=0;

//设置阴影竖直偏移

context.shadowOffsetY=3;

//设置阴影模糊程度

context.shadowBlur = 5;

var circles=[];

var fouse = 300;//焦距

var random=function(min,max){

return Math.floor(Math.random()*(max-min))+min;

};

var draw=function(){

context.clearRect(-250,-250,500,500);

for ( var i = 0; i < circles.length; i++) {

var circle = circles[i];

circle.x +=circle.xspeed;

if(circle.x > 250 || circle.x < -250){

circle.xspeed*=-1;

}

circle.y +=circle.yspeed;

if(circle.y > 250 || circle.y < -250){

circle.yspeed*=-1;

}

circle.z +=circle.zspeed;

if(circle.z > 600 || circle.z < -50){

circle.zspeed*=-1;

}

var scale=fouse/(fouse+circle.z);

context.save();

context.scale(scale,scale);

context.beginPath();

var radiusBg = context.createRadialGradient(circle.x,circle.y,0,circle.x,circle.y,circle.r);

radiusBg.addColorStop(0,"#cbc0f3");

radiusBg.addColorStop(1,"#06198b");

context.fillStyle=radiusBg;

context.arc(circle.x,circle.y,circle.r,0,Math.PI*2);

context.fill();

context.restore();

}

};

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

var obj={

x:random(-250,250),

y:random(-250,250),

z:random(-50,600),

r:random(10,20),

xspeed:random(0,10),

yspeed:random(0,10),

zspeed:random(0,20)

};

circles.push(obj);

}

setInterval(function(){

draw();

},50);

};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值