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 相关文章推荐
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
将 vue 生成的 js 上传到七牛的实例
Jul 28 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
VSCode配置react开发环境的步骤
Dec 27 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 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
Syphon 秘笈
2021/03/03 冲泡冲煮
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
php检测文件编码的方法示例
2014/04/25 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JS 进度条效果实现代码整理
2011/05/21 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
新闻专业推荐信范文
2013/11/20 职场文书
霸王洗发水广告词
2014/03/14 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
师德师风承诺书
2014/05/23 职场文书
销售队伍口号
2014/06/11 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
介绍长城的导游词
2015/01/30 职场文书
运动会广播稿20字
2015/08/19 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers