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调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
jquery操作select详解(取值,设置选中)
Feb 07 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 Javascript
React Hooks的深入理解与使用
Nov 12 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 选项及相关信息函数库
2006/12/04 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
php解决约瑟夫环示例
2014/04/09 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
python遍历数组的方法小结
2015/04/30 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
材料加工工程求职信
2014/02/19 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
房地产端午节活动方案
2014/08/24 职场文书
期中考试复习计划
2015/01/19 职场文书
同学联谊会邀请函
2019/06/24 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
Windows server 2016服务器基本设置
2022/08/14 Servers