超级实用的动态时钟。

article/2025/9/22 8:00:10

canvas

绘制时钟

时钟动态效果的实现基于canvas画布的重绘,也就是说每秒都要在canvas画布上重新绘画一遍图形,在配合定时器即可实现动态效果。而实现此时钟主要有两个步骤,1是表盘的绘制,2是指针的绘制。

绘制时钟表盘

时钟表盘的刻度分为两种,一种是时刻度,一种是秒或分刻度。

  1. 先使用cnavas创建空心的圆 在这里插入图片描述
    2,使用canvas中的旋转和画布状态来刻画表盘的时刻度。只需要每次都在表盘中心也就是圆心的正上方绘制一个刻度,然后将canvas画布旋转30deg重复此操作。
    0deg
			cxt.save()// 重设画布的原点,以画布中心为原点cxt.translate(250,250)cxt.lineWidth = 5;// 设置旋转角度 参数是弧度Math.PI / 180  * 30cxt.rotate(Math.PI / 180 * 30 * 0)//第一次画布不旋转,随后每次旋转30degcxt.beginPath()cxt.moveTo(0,-180)cxt.lineTo(0,-195)cxt.stroke()cxt.closePath()cxt.restore()

上图效果是当canvas画布不旋转时绘画的第一个刻度,随后每绘画一个刻度完成,便需要将画布旋转30deg,然后在绘制刻度,而此操作需要重复多次,所以只需将以上代码放入循环之中便可。
在这里插入图片描述

		// 刻度,利用旋转// 时刻度for(var i = 0;i < 12;i++){// 保存当前画布状态cxt.save()// 重设画布的原点,以画布中心为原点cxt.translate(250,250)cxt.lineWidth = 5;// 设置旋转角度 参数是弧度Math.PI / 180  * 30cxt.rotate(Math.PI / 180 * 30 * i)cxt.beginPath()cxt.moveTo(0,-180)cxt.lineTo(0,-195)cxt.stroke()cxt.closePath()// 返回画布状态cxt.restore()}
  1. 时刻度绘制完成,分刻度的绘制自然就简单许多,只需要改变旋转的角度。
    是刻度
		// 分刻度for(var i = 0;i < 60;i++){cxt.save()cxt.translate(250,250)cxt.lineWidth = 3;cxt.rotate(Math.PI / 180 * 6 * i)cxt.beginPath()cxt.moveTo(0,-188)cxt.lineTo(0,-195)cxt.stroke()cxt.closePath()cxt.restore()}

绘制时钟指针

在绘制指针之前要先获取当前的时间,指针的转动是随着时间的变化而实时转动的,所以指针的转动要通过当前时间的百分比来绘制的。
比如说现在时间为3点整,那么时针应该指向3点钟方向,而分针和秒针应该指向12点钟方向。3点钟方向与12点钟方向所成的夹角的度数为90deg,那么只需要绘制圆心点到正上方的一条实心线再将其旋转90deg就可以。
在这里插入图片描述
或者当时间是8点整是,同样只需要获取当前时间的百分比,获得当前时针指向的方向与12点钟方向的夹角(注意夹角的度数是逆时针方向来读取),获取度数后将画布旋转到此度数便可。
在这里插入图片描述

 		// 时针cxt.save()cxt.lineWidth = 5;cxt.strokeStyle = "black"cxt.translate(250,250)cxt.rotate(8 * 30 * Math.PI / 180)cxt.beginPath()cxt.moveTo(0,10)cxt.lineTo(0,-120)cxt.closePath()cxt.stroke()cxt.restore()

分针和秒针的绘制与时针的绘制是一样的道理,只需要改变canvas画布旋转的度数,比方说绘制一个小编写此篇博客时的指针状态。(19:48)
在这里插入图片描述

 		// 时针cxt.save()cxt.lineWidth = 5;cxt.strokeStyle = "black"cxt.translate(250,250)cxt.rotate(7.8 * 30 * Math.PI / 180)cxt.beginPath()cxt.moveTo(0,10)cxt.lineTo(0,-120)cxt.closePath()cxt.stroke()cxt.restore()// fen针cxt.save()cxt.lineWidth = 3;cxt.strokeStyle = "blue"cxt.translate(250,250)cxt.rotate(48 * 6 * Math.PI / 180)cxt.beginPath()cxt.moveTo(0,15)cxt.lineTo(0,-150)cxt.closePath()cxt.stroke()cxt.restore()// 秒针cxt.save()cxt.lineWidth = 1.5;cxt.strokeStyle = "red"cxt.translate(250,250)cxt.rotate(3 * 6 * Math.PI / 180)cxt.beginPath()cxt.moveTo(0,20)cxt.lineTo(0,-160)cxt.closePath()cxt.stroke()cxt.restore()

时钟指针的绘制这样就完成了,至于整体的绘制只需要将时,分,秒绘制时旋转的度数使用当前时间,再将整体放入定制器当中,每个1s便重新获取时间和绘制时钟指针的指向便实现了整体效果。


http://chatgpt.dhexx.cn/article/wX9NrUnp.shtml

相关文章

教你制作 简易罗盘动态时钟 网页文件

简易罗盘动态时钟&#xff08;含html文件和源码&#xff09; 快来获取 首先给大家展示成品截图 首选展示index.txt代码 <动态罗盘时钟> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"v…

用前端代码编写一个动态的罗盘时钟

用前端代码编写一个动态的罗盘时钟 前言一、代码如下1.index2.js3.css 页面效果 前言 今天给大家分享一个罗盘时钟的前端代码&#xff0c;喜欢的小伙伴帮忙点赞一下噢&#xff01; 一、代码如下 1.index <!DOCTYPE html> <html lang"en"> <head>…

android时钟字体,文字时钟下载-文字时钟 安卓版v1.6.1-PC6安卓网

文字时钟屏保app是一款功能齐全又实用的时钟显示软件&#xff0c;文字时钟屏保app主界面是一个自带时间、日期、天气的LED数字时钟和模拟时钟&#xff0c;全屏显示翻页时钟&#xff0c;酷炫美观又实用。这款文字时钟屏保app可以一直保持显示状态。 软件介绍 文字时钟屏保app是一…

日历与时钟

目录 公历 黑色星期五 生物韵律 公历 在公历中&#xff0c;当年份为4的整数倍&#xff0c;但不是100的整数倍时&#xff0c;会出现闰年的现象。 y40 mod(y,4) 0 && mod(y,100)||mod(y,400)0 输出当时的年、月、日、时、分、秒 f%6d %6d %6d %6d %6d %9.3f\n cclock …

手机时钟软件推荐,创意时钟APP介绍

手机上有好用的时钟APP&#xff0c;时钟软件哪个好用? 每个人的手机屏幕都有着自己独特的设计&#xff0c;而时钟软件能够为用户的手机再增添一些风采和魅力&#xff0c;更有专为来年人设计的大字体桌面时钟&#xff0c;更加的清晰直观&#xff0c;各种特色的桌面时钟app中都有…

各种好用的在线时钟、网页时钟汇总推荐集合

电脑全屏时钟网页版https://www.sioe.cn/rili/quanpingshizhong.php 网页时钟http://www.gz7k.com/ 在线时钟 - 现在几点https://naozhong.net.cn/shijian/ 桌面时钟_在线极简时钟同步北京时间网提供桌面时钟&#xff0c;在线极简同步时钟。https://www.beijing-time.org…

html在线时钟

html在线时钟 <script src"https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script><!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style…

html 、css、js动态文字时钟

效果思路是利用css的transform属性和js&#xff0c;来实现时钟布局和旋转。 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…

显示农历天气时钟小部件下载_文字云时钟安卓版下载|文字云时钟app下载_v1.0

文字云时钟是一款流行便捷简洁时钟服务软件&#xff0c;为用户提供桌面时钟、数字时钟、悬浮时钟、秒表计时等多种功能&#xff0c;喜欢的朋友赶快点击下载吧&#xff01; 软件介绍 文字云时钟word clock软件是一款生活实用的文字时钟。文字云时钟app既可以当做类似LED效果的…

[乐意黎]某音上超酷炫的 Word Clock 文字云时钟屏保配置

乐意黎最近在某音上看到 Wordclock 屏保非常的火爆&#xff0c;看上去非常有意思。 哪么 Wordclock屏保怎么弄的&#xff1f;如何设置呢&#xff1f; 电脑怎么设置动态时钟屏保 实现这样的动态时间屏保的效果主要是使用了一款叫做word clock的第三方插件&#xff0c;《Word C…

android时钟字体,抖音文字云时钟app-抖音文字云时钟安卓版(word clock)v1.0下载

抖音文字云时钟app是一款异常火爆的数字时钟软件&#xff0c;该软件在抖音上已经被众多小伙伴种草了&#xff0c;它拥有非常炫酷的背景&#xff0c;设置安装起来也非常简便&#xff0c;可以自定义多个模块&#xff0c;支持多种语音&#xff0c;感兴趣的小伙伴千万不要错过哦&am…

【前端领域】一个好玩好看的罗盘时钟 --- 附详细介绍

唯有热爱&#xff0c;可抵岁月漫长&#xff0c;唯有热爱&#xff0c;不畏世间无常&#xff01; 少年不曾迷茫&#xff0c;展翅飞往神域&#xff0c;坚定初心&#xff0c;踏实行动。 新的一年&#xff0c;收下少年的祝福&#xff0c;一起踏上新道路。 &#x1f4aa;(ง •_•)…

Div+CSS网页设计(HTML5)

1、将图片添加到div中间位置 <div style"color:#0000FF" id"top"> <div class"f1" align"center"><img src"img/logo.png"> </div> </div> #top{background: cadetblue;height: …

网页设计与制作html+css

1、前言 又到毕业季&#xff0c;毕业设计ing or 课程设计ing&#xff0c;我准备了几款网页设计与制作免费模板送个各位萌新参考&#xff0c;助力各位小伙伴顺利完成毕业设计或者课程设计。 2、作品展示 《junny》 这款作品页面清新简单&#xff0c;代码结构也不复杂&#x…

HTML5与CSS3网页制作

链接&#xff1a;https://b23.tv/WCVjdBf 视频中提到的助学网页&#xff1a; https://www.w3.org/ https://caniuse.com/?searchcenter VSCODE快捷键 标签*数字&#xff1a;能产生n个标签 标签{内容}&#xff1a;能快速生成 嵌套标签1>嵌套标签2&#xff1a;快速生成嵌套…

HTML5网页设计的基本知识-几个概念

网页的构成 1.结构标准&#xff1a;对网页元素进行整理和分类&#xff0c;文件后缀名为.html 2.样式标准&#xff1a;对网页版式、颜色、大小等的设计&#xff0c;文件后缀命为.css 3.行为标准&#xff1a;网页模型的定义以及交互的编号&#xff0c;文件后缀名为.js 理解记…

HTML5期末大作业:大学生个人网站设计——我们的班级(7页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html网页制作代码大全 html5网页设计作业代码

HTML5期末大作业&#xff1a;大学生个人网站设计——我们的班级(7页) HTMLCSSJavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞…

HTML5网页设计成品_学生DW静态网页设计_web课程设计网页制作 网页制作基础大二dw作业 HTML5期末考核大作业 个人网站设计

HTML5期末大作业&#xff1a;个人网站设计——小黄人(5页) HTMLCSS 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 …

HTML网站设计

目录 网站设计 网站开发的步骤 开发之前的准备 静态页面设计工具 需要的浏览器 服务器应用程序开发环境 数据库开发环境 网页开发的模块 浏览器价值 HTML HTML5的基本结构 标签(标记) 标签的分类 标签的属性 标签的书写要求 标签的书写规范 网页的生成 HTML中…

html5网页设计作业代码 大学生校园网站制作 学校官网制作html

&#x1f329;️ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套…