广告
返回顶部
首页 > 资讯 > 精选 >微信小程序如何使用canvas绘制钟表
  • 503
分享到

微信小程序如何使用canvas绘制钟表

2023-06-15 07:06:12 503人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关微信小程序如何使用canvas绘制钟表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。模拟时钟利用canvas绘制时钟,实现模拟时钟的功能,钟表时间与系统时间保持一致,刻度将24小时制转换

这篇文章给大家分享的是有关微信小程序如何使用canvas绘制钟表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

模拟时钟

利用canvas绘制时钟,实现模拟时钟的功能,钟表时间与系统时间保持一致,刻度将24小时制转换为12小时制,需要分别绘图出中心圆、外层大圆、分针、时针、秒针。

效果图如下:

微信小程序如何使用canvas绘制钟表

代码如下:

index.wxml

<canvas canvas-id="myCanvas" class="mycanvas"></canvas>

index.wxss

.mycanvas {  width: 100%;  height: 100%;  position: fixed;}

index.js

Page({  width: 0,  //窗口宽度  height: 0,  //窗口高度  onLoad: function () {    // 获取系统信息    wx.getSystemInfo({      // 获取系统信息成功,保存获取到的系统窗口的宽高      success: res => {        // console.log(res)        this.width = res.windowWidth        this.height = res.windowHeight        }      })    },  timer: null,  //定时器  onReady: function(){    //创建ctx实例     var ctx = wx.createCanvasContext('myCanvas')    //将角度转换为弧度,方便在后面使用     //计算公式:弧度 = 角度*Math.PI / 180    const D6 = 6 * Math.PI / 180     const D30 = 30 * Math.PI / 180     const D90 = 90 * Math.PI / 180     // 获取宽和高值     var width = this.width, height = this.height     // 计算表盘半径,留出 30px 外边距    var radius = width / 2 -30     // 每秒绘制一次     draw()     this.timer = setInterval(draw, 1000)     // 绘制函数     function draw(){       // 设置坐标轴原点为窗口的中心点       ctx.translate(width / 2, height / 2)       // 绘制表盘       drawClock(ctx,radius)       // 绘制指针       drawHand(ctx, radius)       //执行绘制       ctx.draw()   }      // 绘制表盘部分    function drawClock(ctx, radius){      // 绘制大圆      // 大圆的半径 radius 线条粗细为2px      ctx.setLineWidth(2)  //设置线条粗细      ctx.beginPath()  //开始一个新路径      ctx.arc(0, 0, radius, 0, 2 * Math.PI, true)      ctx.stroke()   //画线      // 绘制同心圆      // 中心圆的半径为8px 线条粗细为1px      ctx.setLineWidth(1)  //设置线条粗细      ctx.beginPath()  //开始一个新路径      ctx.arc(0, 0, 8, 0, 2 * Math.PI, true)      ctx.stroke()   //画线      // 绘制大刻度盘 线条粗细为5px      ctx.setLineWidth(5)      for (var i = 0; i < 12; ++i){        // 以原点为中心顺时针(多次调用旋转的角度会叠加)        // 大刻度盘需要绘制12个线条,表示12个小时,每次旋转30度        ctx.rotate(D30)   // 360 / 12 = 30        ctx.beginPath()        ctx.moveTo(radius, 0)        ctx.moveTo(radius - 15, 0)  //大刻度长度15px        ctx.stroke()      }      // 绘制小刻度盘,线条粗细为1px      ctx.setLineWidth(1)      for(var i = 0; i < 60; ++i){        // 小刻度盘需要绘制60个线条,表示60分钟或60秒,每次旋转6度        ctx.rotate(D6)        ctx.beginPath()        ctx.moveTo(radius, 0)        ctx.lineTo(radius - 10, 0) //小刻度盘长度10px        ctx.stroke()      }      //绘制文本      ctx.setFontSize(20)  //字号      ctx.textBaseline = 'middle'  // 文本垂直居中      // 计算文本距离表盘中心点的半径r      var r = radius - 30      for(var i = 1; i <= 12; ++i){        // 利用三角函数计算文本坐标        var x = r * Math.cos(D30 * i - D90)        var y = r * Math.sin(D30 * i - D90)        if(i > 10){ // 调整11 和12位置          // 在画布上绘制文本 fillText(文本,左上角x坐标,左上角y坐标)          ctx.fillText(i, x - 12, y)        } else {          ctx.fillText(i, x-6, y)        }      }    }    //绘制指针部分    function drawHand(ctx, radius){      var t = new Date()    // 获取当前时间      var h = t.getHours()  //小时      var m = t.getMinutes() //分      var s = t.getSeconds()  // 秒      h = h > 12 ? h -12 :h    //将24小时制转换为12小时制      //时间从三点开始,逆时针旋转90度,指向12点      ctx.rotate(-D90)      //绘制时针      ctx.save()   //记录旋转状态      // 计算时针指向的刻度      // 通过 30度 * h 可以计算每个整点的旋转角度      // 如果时间不是整点,需要使用h + m / 60 + s / 3600 计算准确的偏移度      ctx.rotate(D30 * (h + m / 60 + s / 3600))      ctx.setLineWidth(6)      ctx.beginPath()      ctx.moveTo(-20, 0)      ctx.lineTo(radius / 2.6, 0)      ctx.stroke()      ctx.restore()      // 绘制分针      ctx.save()      ctx.rotate(D6 * (m + s / 60))      ctx.setLineWidth(4)      ctx.beginPath()      ctx.moveTo(-20, 0)      ctx.lineTo(radius / 1.8, 0)      ctx.stroke()      ctx.restore()      //绘制秒针      ctx.save()      ctx.rotate(D6 * s)      ctx.setLineWidth(2)      ctx.beginPath()      ctx.moveTo(-20, 0)      ctx.lineTo(radius / 1.6, 0)      ctx.stroke()      ctx.restore()     }   }})

感谢各位的阅读!关于“微信小程序如何使用canvas绘制钟表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 微信小程序如何使用canvas绘制钟表

本文链接: https://www.lsjlt.com/news/278446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序使用canvas绘制钟表
    本文实例为大家分享了微信小程序使用canvas绘制钟表的具体代码,供大家参考,具体内容如下 模拟时钟 利用canvas绘制时钟,实现模拟时钟的功能,钟表时间与系统时间保持一致,刻度将...
    99+
    2022-11-12
  • 微信小程序如何使用canvas绘制钟表
    这篇文章给大家分享的是有关微信小程序如何使用canvas绘制钟表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。模拟时钟利用canvas绘制时钟,实现模拟时钟的功能,钟表时间与系统时间保持一致,刻度将24小时制转换...
    99+
    2023-06-15
  • 微信小程序怎么绘制打卡时钟
    这篇文章主要介绍了微信小程序怎么绘制打卡时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序怎么绘制打卡时钟文章都会有所收获,下面我们一起来看看吧。一、项目展示这是一款简单实用的小时钟工具分为工作和休息...
    99+
    2023-06-30
  • 微信小程序开发中如何使用canvas绘制坐标图
    这篇文章主要为大家展示了“微信小程序开发中如何使用canvas绘制坐标图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序开发中如何使用canvas绘制坐标图”这篇文章吧。线图functi...
    99+
    2023-06-26
  • 微信小程序实战之打卡时钟的绘制
    目录一、项目展示二、首页三、设置一、项目展示 这是一款简单实用的小时钟工具 分为工作和休息两种状态 用户可以设置相应的时间 所有的时钟记录都会被保存下来 二、首页 首页由计时器、任...
    99+
    2022-11-13
  • 在微信小程序中如何使用canvas绘制天气折线图
    今天小编给大家分享一下在微信小程序中如何使用canvas绘制天气折线图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。折线效果...
    99+
    2023-06-29
  • 微信小程序的canvas如何使用
    这篇文章主要介绍了微信小程序的canvas如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序的canvas如何使用文章都会有所收获,下面我们一起来看看吧。canv...
    99+
    2022-10-19
  • 微信小程序中如何使用canvas制作K线
    这篇文章主要介绍了微信小程序中如何使用canvas制作K线,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言:我们目的是想要一条平滑的曲线来...
    99+
    2022-10-19
  • 如何使用canvas绘制超炫时钟
    这篇文章主要介绍“如何使用canvas绘制超炫时钟”,在日常操作中,相信很多人在如何使用canvas绘制超炫时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用canv...
    99+
    2022-10-19
  • 微信小程序画布canvas怎么使用
    这篇“微信小程序画布canvas怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序画布canvas怎么使用”文...
    99+
    2023-06-26
  • C语言如何绘制简单时钟小程序
    本篇内容介绍了“C语言如何绘制简单时钟小程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先贴效果图给大家先看看基本机制是通过获取系统的时钟...
    99+
    2023-07-02
  • 微信小程序如何制作
    这篇文章主要为大家展示了“微信小程序如何制作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何制作”这篇文章吧。一,善于使用搜索引擎例如搜索引擎。商店都了解SEO和SEM。根据关键字优...
    99+
    2023-06-27
  • 如何使用PHP实现微信小程序的闹钟功能?
    如何使用PHP实现微信小程序的闹钟功能?随着微信小程序的普及,更多的开发者开始关注如何在微信小程序中实现各种实用的功能。其中,闹钟功能是一项非常实用的功能之一。本文将介绍如何使用PHP编写后端接口,并结合微信小程序的前端代码,实现一个简单的...
    99+
    2023-10-27
    微信 PHP 闹钟
  • 如何使用PHP实现微信小程序的绘图功能?
    如何使用PHP实现微信小程序的绘图功能?随着小程序的普及,越来越多的开发者开始关注如何在微信小程序中实现绘图功能。PHP作为一种常用的服务器端脚本语言,可以与微信小程序结合,实现丰富的绘图功能。本文将具体介绍如何使用PHP实现微信小程序的绘...
    99+
    2023-10-27
    绘图 PHP 微信小程序
  • 微信小程序常用表单组件如何使用
    这篇文章主要介绍“微信小程序常用表单组件如何使用”,在日常操作中,相信很多人在微信小程序常用表单组件如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序常用表单组件如何使用”的疑惑有所帮助!接下来...
    99+
    2023-06-29
  • 微信小程序TodoList如何使用
    这篇文章主要介绍“微信小程序TodoList如何使用”,在日常操作中,相信很多人在微信小程序TodoList如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序TodoList如何使用”的疑惑有所...
    99+
    2023-06-26
  • 微信小程序如何使用图表插件wx-charts
    这篇文章主要介绍了微信小程序如何使用图表插件wx-charts,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序图表工具,charts...
    99+
    2022-10-19
  • 在微信小程序中怎么使用canvas+Painter插件制作二维码
    本篇内容介绍了“在微信小程序中怎么使用canvas+Painter插件制作二维码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、实现原理使...
    99+
    2023-06-25
  • 微信小程序中如何使用wx.previewImage
    这篇文章主要为大家展示了微信小程序中如何使用wx.previewImage,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“微信小程序中如何使用wx.previewImage”这篇文章吧。预览图片。O...
    99+
    2023-06-26
  • 如何才能使用微信小程序
    这篇“如何才能使用微信小程序”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何才能使用微信小程序”文章吧。  第一步:填写账...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作