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 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
JavaScript Date对象使用总结
May 14 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
May 30 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
Nov 23 Javascript
js验证上传图片的方法
May 12 Javascript
Jquery获取第一个子元素简单实例
Jun 02 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
JavaScript如何把两个数组对象合并过程解析
Oct 10 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
JS实现网页烟花动画效果
Mar 10 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
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
elementui实现预览图片组件二次封装
2020/12/29 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
python网络爬虫采集联想词示例
2014/02/11 Python
35个Python编程小技巧
2014/04/01 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
理解python中生成器用法
2017/12/20 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python装饰器用法与知识点小结
2020/03/09 Python
Python类成员继承重写的实现
2020/09/16 Python
城市规划毕业生求职信
2013/10/10 职场文书
美德少年事迹材料
2014/01/23 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
交通事故和解协议书
2014/09/25 职场文书
未婚证明范本
2015/06/15 职场文书
上班旷工检讨书
2015/08/15 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis