脚本宝典收集整理的这篇文章主要介绍了vue + canvas 实现炫酷时钟,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
ctx.arc(x,y,r,开始弧度,结束弧度)
ctx.moveTo(x,y)
ctx.lineTo(x1,y1)
x = x0 + Math.cos(角度)*长度
y = y0 + Math.sin(角度)*长度
思路:
计算时针角度的方法: -90 + i * (360 / 12)
代码如下:
drawHoursScale(ctx, x0, y0, scaleNum, scaleW, maxL, minL) {
for (let i = 0; i < scaleNum; i++) {
let angel = -90 + i * (360 / scaleNum) //角度
let [x1, y1] = [x0 + Math.cos(angel * Math.PI / 180) * maxL, y0 + Math.sin(angel * Math.PI / 180) * maxL]
let [x2, y2] = [x0 + Math.cos(angel * Math.PI / 180) * minL, y0 + Math.sin(angel * Math.PI / 180) * minL]
ctx.save()
ctx.beginPath()
ctx.lineWidth = scaleW
ctx.lineCap = "round"
ctx.moveTo(x1, y1)
ctx.lineTo(x2, y2)
ctx.stroke()
ctx.closePath()
ctx.restore()
}
}
思路:
lineTo
的方式进行绘制如何计算终点坐标 与绘制刻度的思想式类似的
代码如下:
drawTimeNeedle(ctx, x0, y0, lineW, L, angel, color = '#000') {
let [x, y] = [x0 + Math.cos(angel * Math.PI / 180) * L, y0 + Math.sin(angel * Math.PI / 180) * L]
ctx.save()
ctx.beginPath()
ctx.strokeStyle = color
ctx.lineWidth = lineW
ctx.lineCap = "round"
ctx.moveTo(x0, y0)
ctx.lineTo(x, y)
ctx.stroke()
ctx.closePath()
ctx.restore()
},
说明事项
以上是脚本宝典为你收集整理的vue + canvas 实现炫酷时钟全部内容,希望文章能够帮你解决vue + canvas 实现炫酷时钟所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。