java钟表动画_js实现一个简单钟表动画(javascript+html5 canvas)
canvas{margin-left:500px;margin-top:100px;
}
/*作者:胖兔
时间:2017.8.9
描述:用js和html5 canvas对象实现一个简单钟表程序*/
varCanvas={//属性
Context:document.getElementById("canvas").getContext('2d'),//擦除
Clear:function(){varcxt=Canvas.Context;varwidth=cxt.canvas.width;varheight=cxt.canvas.height;;this.Context.clearRect(0,0, width, height);
},//radius钟表半径,sencondScaleWidth刻度长度,secondHandWidth秒针长度
CreateClock:function(radius,sencondScaleWidth,secondHandWidth){varme= this;varradius=radius;varsencondScaleWidth=sencondScaleWidth;varsecondHandWidth=secondHandWidth;//小时刻度
varhourScaleWidth=sencondScaleWidth*2;//时针分针长度
varhourHandWidth=secondHandWidth*80/100;
//分针长度
varminuteHandWidth=secondHandWidth*90/100;
//确定圆心坐标
varpoint={x:this.Context.canvas.width/2,y:this.Context.canvas.height/2};varctx= this.Context;//获取上下文
//绘制圆圈
functiondrawCircle(){
ctx.save();//记录画笔状态
//确定画笔的位置在圆心点
ctx.translate(point.x,point.y);//ctx.fillStyle = "black";
ctx.strokeStyle="gray";
ctx.lineWidth= 2;
ctx.beginPath();//开始绘制路径
ctx.arc(0,0,radius,0,Math.PI*2);
ctx.closePath();//关闭路径
ctx.stroke();//绘制
ctx.restore();//复位
}//绘制刻度
functiondrawScale(){
ctx.save();//记录画笔状态
varperHourRadian=Math.PI/6;
varperMinuteRadian=Math.PI/30;
//确定画笔的位置在圆心点
ctx.translate(point.x,point.y);
ctx.strokeStyle="gray";//此处为了省事,只在表盘上简单的写了几个时间数字
ctx.font= "bold 30px impack"
vardc=radius-hourScaleWidth-30;
ctx.fillText("3", dc,10);
ctx.fillText("6",-10,dc );
ctx.fillText("9",-dc,10);
ctx.fillText("12",-15,-dc);
ctx.stroke();for(vari=0;i<12;i++){//坐标旋转
ctx.rotate(perHourRadian);
ctx.moveTo(radius-hourScaleWidth,0);
ctx.lineTo(radius,0);
}for(vari=0;i<60;i++){//坐标旋转
ctx.rotate(perMinuteRadian);
ctx.moveTo(radius-sencondScaleWidth,0);
ctx.lineTo(radius,0);
}
ctx.stroke();//绘制
ctx.restore();//radian
}//drawScale();
functiondrawHand(){varmyDate= newDate();varcurHour=myDate.getHours();varcurMinute=myDate.getMinutes();varcurSecond=myDate.getSeconds();//绘制时针
curHour=curHour>12?curHour-12:curHour;varhourRadian=(curHour+curMinute/60+curSecond/3600)*(Math.PI/6);
//绘制分针
varminuteRadian=(curMinute+curSecond/60) * (Math.PI/30);//绘制秒针
varsecondRadian=curSecond*(Math.PI/30);
functionrun(radian,width,color){
ctx.save();
ctx.translate(point.x,point.y);
ctx.rotate(-Math.PI/2);
ctx.strokeStyle=color
ctx.beginPath();
ctx.rotate(radian);
ctx.moveTo(0,0);
ctx.lineTo(width,0);
ctx.closePath();
ctx.stroke();
ctx.restore();
}
run(hourRadian,hourHandWidth,"black");
run(minuteRadian,minuteHandWidth,"green");
run(secondRadian,secondHandWidth,"red");
}//drawHand();
functiondrawAll(){
me.Clear();
drawCircle();
drawScale();
drawHand();
}
setInterval(drawAll,1000);
}
};
Canvas.CreateClock(290,20,200);
java钟表动画_js实现一个简单钟表动画(javascript+html5 canvas)相关推荐
- js 获得明天0点时间戳_js实现一个简单钟表动画(javascript+html5 canvas)
自己学生时代的代码,发现还保存着,今天拿出来分享下. 用js和html5 canvas对象实现一个简单钟表程序 主要用到的就是h5的canvas对象 canvas对象本人也不是很熟,大致看了几个常用的 ...
- 将Java程序变成可执行文件的一个简单方法
将Java程序变成可执行文件的一个简单方法 运行Java程序(SWING或SWT的桌面程序)可以直接执行.class文件或将所有的.class文件及相关的其他文件压缩成.jar文件,然后使用javaw ...
- java计算机毕业设计vue开发一个简单音乐播放器(附源码、数据库)
java计算机毕业设计vue开发一个简单音乐播放器(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ec ...
- java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...
- java 语言 写字板_一个简单的java语言写字板.docx
一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...
- java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署 本源 ...
- pr如何跳到关键帧_PR教程 如何利用pr制作一个简单的动画
Adobe Premiere Pro简称PR,是一款非常不错的视频制作编辑软件,如何如何利用pr制作一个简单的动画,这里小编为大家带来了pr动画制作教程--利用pr制作动画,一起来学习一下吧! Ado ...
- canvas动画科技园_8个经典炫酷的HTML5 Canvas动画欣赏
HTML5非常强大,尤其是Canvas技术的应用,让HTML5几乎可以完成所有Flash能完成的效果.本文精选了8个经典炫酷的HTML5 Canvas动画欣赏,每一个都提供全部的源代码,希望对你有所帮 ...
- html小人动画效果代码,JavaScript+html5 canvas绘制的小人效果
本文实例讲述了JavaScript+html5 canvas绘制的小人效果.分享给大家供大家参考,具体如下: 运行效果截图如下: index.html代码如下: canvas中的缩放 #canvas ...
- java 缓存方法_Java实现一个简单的缓存方法
Java实现一个简单的缓存方法 发布时间:2020-09-07 21:39:55 来源:脚本之家 阅读:99 作者:BrightLoong 缓存是在web开发中经常用到的,将程序经常使用到或调用到的对 ...
最新文章
- C++的集成开发环境(IDE)
- php如何让字母加1,如何使用PHP以任何顺序(从12个字母组成6个单词组成一个字母)进行字符搜索?...
- Flying框架思路与感想
- python的赋值与参数传递(python和linux切换)
- 相关与卷积、各种误差
- java数字计算结果_Java编写程序之输入一个数字实现该数字阶乘的计算
- 基于SSM的医学健康网站
- 现金支票打印模板excel_Excel的正确使用技巧-Excel的提速大法
- 摄像机标定原理与操作
- 中职计算机专业英语说课稿,中职英语说课稿模板.doc
- Eplan教程——项目检查错误 005013/005014:连接点类型不同
- 1970年图灵奖--詹姆斯·威尔金森生平
- Ant Deign Pro - ProTable - 高级表格 通用打印组件
- 利用SS7漏洞可追踪全球数十亿部手机 黑客千里之外窃听澳洲议员
- 海义QQ群共享下载者的一些图例使用步骤教程
- 7-38 寻找大富翁 (25分)
- 新媒体运营胡耀文教程:产品运营视阈下的数据分析
- Nova 最新高度集成的SoC NT98530用于开发4K@60的IPC产品_AI算法承载硬件_开发实例
- python-字符串补录
- 考虑碳交易机制的园区综合能源系统电热协同运行优化研究(Matlab代码实现)
热门文章
- 【git】git+码云上传代码
- 正态分布是离散分布还是连续分布_内容范围:正态分布,泊松分布,多项分布,二项分布,伯努利分布...
- php Class 'ZipArchive' not found
- [电影]《指环王》新老三部曲完全赏析(王者归来)
- Linux系统中的远程访问及控制
- 科技论文写作常用句式结构
- 如何查看虚拟机服务器ftp,如何通过FTP工具查看虚拟空间使用了多少?
- Git commit --amend 修改提交信息
- Day11 Dear Japanese English Learners
- 爬虫笔记37:android控件ListView的讲解、fiddler的安装与使用、fiddler和模拟器的配合使用、案例(爬取豆果美食app)