canvas制作钟表小案例
实现原理:canvas绘制圆的知识以及Date对象
window.onload=function (){var myCanvas=document.querySelector('#myCanvas');var cxt=myCanvas.getContext('2d');var timer=null;clearInterval(timer);//钟表函数function zhonbiao() {var x=200,y=200,r=150;//清除画布cxt.clearRect(0,0,myCanvas.width,myCanvas.height);//获取当前时间var day=new Date();var hour= day.getHours();var minute= day.getMinutes();var sec= day.getSeconds();var hourValue=(-90+hour*30+minute/2)*Math.PI/180;var minuteValue=(-90+minute*6)*Math.PI/180;var secValue=(-90+sec*6)*Math.PI/180;//秒针刻度cxt.beginPath();for(var i=0;i<60;i++){cxt.moveTo(x,y);cxt.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false);cxt.stroke();}cxt.closePath();//绘制圆盖住一部分cxt.beginPath();cxt.fillStyle="#fff";cxt.moveTo(x,y);cxt.arc(x,y,r*19/20,0,Math.PI*2,false);cxt.fill();cxt.closePath();//制作重要刻度 30度cxt.beginPath();cxt.lineWidth=3;for(var i=0;i<12;i++){cxt.moveTo(x,y);cxt.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI/180,false);cxt.stroke();}cxt.closePath();//绘制圆盖住一部分cxt.beginPath();cxt.fillStyle="#fff";cxt.moveTo(x,y);cxt.arc(x,y,r*18/20,0,Math.PI*2,false);cxt.fill();cxt.closePath();//绘制时针cxt.beginPath();cxt.lineWidth=5;cxt.moveTo(x,y);cxt.arc(x,y,r*10/20,hourValue,hourValue,false);cxt.closePath();cxt.stroke()//绘制分针cxt.beginPath();cxt.lineWidth=3;cxt.moveTo(x,y);cxt.arc(x,y,r*14/20,minuteValue,minuteValue,false);cxt.closePath();cxt.stroke()//绘制秒针cxt.beginPath();cxt.lineWidth=1;cxt.moveTo(x,y);cxt.arc(x,y,r*17/20,secValue,secValue,false);cxt.closePath();cxt.stroke()}timer= setInterval(zhonbiao,1000);zhonbiao();}</script>
canvas制作钟表小案例相关推荐
- linux 电子表小程序,微信小程序Taro开发(3):canvas制作钟表
制作钟表分成两部分,一部分是表盘,一部分是时针.分针.秒针的走动,首先,先绘制表盘: // 绘制表盘 getDialClock = () => { const width = this.stat ...
- canvas制作钟表
之前用html+css+JavaScript实现了一个简单钟表,但还是有一些问题,主要是一些css属性不同浏览器支持效果不一样,所以尝试用 canvas实现了一个简单的钟表,效果在下方,当然了,采用c ...
- uniapp实现canvas制作微信小程序海报,线上图片
先看下效果图 生成海报后,点击保存到相册,会调起请求权限,是否同学调用我们的相册,允许之后,这张海报就会自动存入我们的相册 具体实现: <view class='canvas-box' v-sh ...
- html5+canvas+九宫格,javascript+canvas制作九宫格小程序
js核心代码 /* *canvasid:html canvas标签id *imageid:html img 标签id *gridcountX:x轴图片分割个数 *gridcountY:y轴图片分割个数 ...
- H5上传图片并使用canvas制作海报
马上就要"十一"国庆节了,又恰逢公司已经三周岁了,所以市场部和产品共同策划了一个"正青春,共成长"的主题代言活动,准备在国庆节以及中秋节期间让公司员工和用户为公 ...
- 前端实战小案例--canvas实战之FlappyBird小游戏
前端实战小案例--canvas实战之FlappyBird小游戏 想练习更多前端案例,请进个人主页,点击前端实战案例->传送门 觉得不错的记得点个赞?支持一下我0.0!谢谢了! 不积跬步无以至千里 ...
- canvas制作简单钟表
之前用html+css+JavaScript实现了一个简单钟表,但还是有一些问题,主要是一些css属性不同浏览器支持效果不一样,所以尝试用 canvas实现了一个简单的钟表,效果在下方,当然了,采用c ...
- Unity制作随机数字抽奖小案例
Unity制作随机数字抽奖小案例 1. 搭建 UI 界面 2. 实现思路 2-1. 创建 RandomNumber 类 [挂载在每个抽奖格子(Numbers下面的Image)] 2-2. 创建 Sta ...
- 婚恋交友平台小程序制作开发代码案例
这个是目前比较常见的婚恋交友平台小程序制作开发代码案例解析,很多功能大家都可以参考借鉴,比如关注功能,会员付费功能,权限设置等功能. 上几张图片看看效果 首页部分 class DiaryControl ...
最新文章
- java jmx jboss_jboss中JMX的连接与Mbean的获取
- laravel json字段添加_Laravel 6.0.4 中将添加计划任务事件
- JAVA命令运行cmd命令得到的结果乱码Runtime.getRuntime().exec();
- 怎么把丢失的计算机放回桌面,不小心把电脑桌面开始哪里放在右边了,怎么把它放回原处啊...
- Java编程——服务器设计方案之应用限流
- 2021年网生代线上社交行为洞察报告
- Appium安装过程
- oracle asm ora 15041,ORA-15041,ORA-01274 故障解决实例
- 【多视图几何】TUM 课程 第6章 多视图重建
- 离职一个月了,也面了很多公司,但都没有offer,软件测试工作怎么就这么难找?
- 如何在苹果Mac上截屏或录制屏幕?
- Android App安全防范措施的小结
- 【python包】NumPy-快速处理数据2
- java学生成绩降序代码_输入5名学员成绩,降序排列输出
- php 表格模板,怎么制作excel表格模板
- UCOSIII操作系统学习笔记——任务
- CentOs7怎么查看系统版本
- html和js制作个人所得税表格,原创文章:使用Vuejs实现个人所得税功能兼容移动端...
- excel中替换功能的新颖用法
- vue和socket.io开发简单web聊天室
热门文章
- 避免我们的邮件服务器发出的邮件被当成垃圾邮件
- Debian 一些基础操作
- 大学必考计算机软件cad,大学CAD考试题目「附答案」
- 如何调换计算机桌面壁纸,怎样让电脑自动更换桌面背景
- 什么是*.yml文件
- js 斐波那契—卢卡斯数列 例子 以及 变态青蛙
- 转载:“技术支持工程师”薪资行情
- 舆情监测系统平台对网络舆情监测的作用
- [ Azure - NSG ] 通过 Azure 网络安全组建立虚拟机的入站规则 Inbound 和出站规则 Outbound
- Java书签 #MyBatis之setMapperLocations配置多个mapper路径的两种方法详解