



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第JavaScript结合Canvas绘画画运动小球目录1.实现思路2.静态效果3.总结前言:
canvas是HTML5新增的元素,也被称为画布,可以结合javascript实现绘制各种图形,制作各种炫酷的动画效果,现在我们也来使用canvas画随机运动小球。
1.实现思路
首先为了达到我们想要的效果,可以先创建一个构造函数。给构造函数添加对应的属性和方法。实例化出多个对象,并且保存在数组中。遍历每个对象,实现画圆。间隔修改每个球的x,y值。
先准备画布确定对应的宽高:
canvasid="canvas"width="400"height="400"/canvas
script
letcanvas=document.getElementById('canvas');
letctx=canvas.getContext('2d');
letmaxWidth=canvas.width,
maxHeight=canvas.height;
ctx.fillStyle='#000';
ctx.fillRect(0,0,maxWidth,maxHeight);
/script
因为是随机运动,所以要创建一个获取随机数的方法:
functiongetRandomNum(minNum,maxNum){
switch(arguments.length){
case1:
returnMath.round(Math.random()*minNum+minNum);
break;
case2:
returnMath.round(
Math.random()*(maxNum-minNum)+minNum);
break;
case0:
return0;
break;
//创建一个Ball的构造函数
functionBall(maxWidth,maxHeight,ctx){
this.ctx=ctx;
this.maxWidth=maxWidth;
this.maxHeight=maxHeight;
//随机半径
this.r=getRandomNum(5,15);
//随机x,y坐标
this.x=getRandomNum(this.r,this.maxWidth-this.r);
this.y=getRandomNum(this.r,this.maxHeight-this.r);
//平移速度,正负区间是为了移动方向多样
this.speedX=getRandomNum(-2,2);
this.speedY=getRandomNum(-2,2);
//颜色随机
this.color=`rgba(${getRandomNum(0,255)},
${getRandomNum(0,255)},
${getRandomNum(0,255)},${Math.random()})`;
Btotype={
draw:function(){
ctx.beginPath();
ctx.fillStyle=this.color;
ctx.arc(this.x,this.y,this.r,0,Math.PI*2);
ctx.fill();
ctx.closePath();
move:function(){
//判断边界值,让圆球始终保证在画面内
if(this.xthis.maxWidth-this.r||this.xthis.r){
this.speedX=-this.speedX;
if(this.ythis.maxHeight-this.r||this.ythis.r){
this.speedY=-this.speedY;
this.x+=this.speedX;
this.y+=this.speedY;
//创建100个Ball实例
letballs=[];
for(leti=0;i100;i++){
letnewBall=newBall(maxWidth,maxHeight,ctx);
newBall.draw();
balls.push(newBall);
}
2.静态效果
现在我们画出了不同半径和颜色的静止圆球:
调用move方法,间隔修改每个球的x,y值。
setInterval(()={
//每次画之前都要清除画布
ctx.clearRect(0,0,maxWidth,maxHeight);
ctx.fillStyle='#000';
ctx.fillRect(0,0,maxWidth,maxHeight);
for(letj=0;j100;j++){
balls[j].draw(ctx);
balls[j].move();
},100);
效果展示:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 派送花束活动方案
- 医院质量管理目标体系构建与实施路径
- 2025届邢台市柏乡县三上数学期末考试模拟试题含解析
- 行政管理经济法概论试题及答案集锦
- 2025年中级经济师复习重点试题及答案
- 掌握公共关系学的思维方式试题及答案
- 2025年市政工程项目实践试题及答案
- 防范恶劣天气安全教育
- 林业有害生物防治协议
- 心理学社会现象分析试题集
- 妇科常见疾病及护理常规
- 电机学II知到智慧树章节测试课后答案2024年秋广东工业大学
- 吊篮安装安全技术交底
- T-CBIA 009-2022 饮料浓浆标准
- 2025届高三地理一轮复习课件第二部分+4.2区域发展对交通运输布局的影响
- 数学分析选讲知到智慧树章节测试课后答案2024年秋齐鲁师范学院
- 《快速时尚品牌》课件
- 2024中华人民共和国学前教育法详细解读课件
- 无人机在应急救灾领域下的应用
- YAMAHA(雅马哈)贴片机编程培训教材
- 事故隐患内部举报奖励制度
评论
0/150
提交评论