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 相关文章推荐
Javascript中 关于prototype属性实现继承的原理图
Apr 16 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
Apr 20 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 Javascript
js实现图片无缝滚动
Dec 23 Javascript
ReactJs实现树形结构的数据显示的组件的示例
Aug 18 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
15分钟学会vue项目改造成SSR(小白教程)
Dec 17 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写出自己的BLOG系统 2
2010/04/12 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
微信小程序实现人脸识别
2018/05/25 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
运动会解说词200字
2014/02/06 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
工程资料员岗位职责
2014/03/10 职场文书
工程主管竞聘书
2015/09/15 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers