canvas实现绘制吃豆鱼效果


Posted in Javascript onJanuary 12, 2017

话不多说,请看代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>canvas吃豆鱼</title>
 </head>
 <style>
 body{
 text-align:center;
 }
 canvas{
 background: #efefef;
 } 
 </style>
 <body>
 <h1>
 角度转为弧度:<br />
 弧度=2*PI*角度/360=角度*PI/180
 </h1>
 <!--画布的宽和高只能使用属性,不能使用样式-->
 <canvas id='a1' width="500" height="400"></canvas>
 </body>
</html>
<script>
 var ctx=a1.getContext('2d');//得到画布上的画笔并设置绘制方式
 function openMouse(){
 //绘制圆(3/4)
 ctx.beginPath();//开始一条路径
 ctx.arc(250,200,100,45*Math.PI/180,315*Math.PI/180);//圆心为(250,200),半径为100
 ctx.lineTo(250,200);
 ctx.closePath();
 ctx.stroke();//勾勒轮廓/描边
 ctx.fillStyle='#00ffff';
 ctx.fill();
 eye();
 }
 //openMouse();
 function closeMouse(){
 ctx.beginPath();//开始一条路径
 ctx.arc(250,200,100,0*Math.PI/180,360*Math.PI/180);//圆心为(250,200),半径为100
 ctx.lineTo(250,200);
 ctx.closePath();
 ctx.stroke();//勾勒轮廓/描边
 ctx.fillStyle='#00ffff';
 ctx.fill();
 eye();
 }
 //closeMouse();
 //绘制公共部分眼睛
 function eye(){
 //绘制眼睛
 ctx.beginPath();
 ctx.arc(250,200-100/2,25,0,2*Math.PI);//眼睛半径为25
 ctx.stroke();
 ctx.fillStyle='#001900';
 ctx.fill();
 //绘制眼神光
 ctx.beginPath();
 ctx.arc(265,140,5,0,2*Math.PI);//眼神光半径为5
 ctx.stroke();
 ctx.fillStyle='#ffffff';
 ctx.fill();
 }
 var isOpen=true;//定义变量isOpen:是否张开
 var timer=setInterval(function(){
 var ctx=a1.getContext('2d');
 ctx.clearRect(0,0,500,400);//清空画布大小
 if(isOpen){
 closeMouse();
 isOpen=false;
 }else{
 openMouse();
 isOpen=true;
 }
 },500);
</script>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
响应鼠标变换表格背景或者颜色的代码
Mar 30 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
Oct 29 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
Mar 01 Javascript
jquery 插件学习(五)
Aug 06 Javascript
jQuery仿天猫实现超炫的加入购物车
May 04 Javascript
JavaScript中的substr()方法使用详解
Jun 06 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
js实现获取鼠标当前的位置
Dec 14 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
JavaScript数据类型的存储方法详解
Aug 25 Javascript
JS中的继承操作实例总结
Jun 06 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 #Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 #Javascript
JS实现仿百度文库评分功能
Jan 12 #Javascript
移动端基础事件总结与应用
Jan 12 #Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 #Javascript
简单的渐变轮播插件
Jan 12 #Javascript
那些精彩的JavaScript代码片段
Jan 12 #Javascript
You might like
星际实力自我测试
2020/03/04 星际争霸
php模板中出现空行解决方法
2011/03/08 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python自定义解析简单xml格式文件的方法
2015/05/11 Python
深入理解python中的select模块
2017/04/23 Python
神经网络python源码分享
2017/12/15 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
在校生党员自我评价
2013/09/25 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
党员干部一句话承诺
2014/05/30 职场文书
争先创优心得体会
2014/09/12 职场文书
2015年考研复习计划
2015/01/19 职场文书
用python画城市轮播地图
2021/05/28 Python