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 相关文章推荐
Js 弹出框口并返回值的两种常用方法
Dec 30 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
JS获取url链接字符串 location.href
Dec 23 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
Vue.js快速入门教程
Sep 07 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
原生js开发的日历插件
Feb 04 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
Oct 11 Javascript
JS使用Chrome浏览器实现调试线上代码
Jul 23 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地址多种方法小结
2010/05/15 PHP
php输入流php://input使用浅析
2014/09/02 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
javascript流程控制语句集合
2017/09/18 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
Python进阶篇之字典操作总结
2016/11/16 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
DELPHI面试题研发笔试试卷
2015/11/08 面试题
岗位廉洁从政承诺书
2014/03/27 职场文书
机器人瓦力观后感
2015/06/12 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js