【前言】
分享个特效,canvas绘制圆形钟表
先看下效果
【主体】
<canvas width="200px" height="200px" id="clock"></canvas>
var dom = document.getElementById("clock"); var ctx = dom.getContext("2d"); var width = ctx.canvas.width; var height = ctx.canvas.height; var r= width / 2; var rem = width/200; function drawAround(){ ctx.save(); ctx.beginPath(); ctx.translate(r, r); ctx.lineWidth = 2 * rem; ctx.arc(0, 0, r-5, 0,2*Math.PI, false); ctx.strokeStyle = "#03a9f4"; ctx.stroke(); var housNumbers = [3,4,5,6,7,8,9,10,11,12,1,2]; ctx.font="18px Arial"; ctx.textAlign = "center"; ctx.textBaseline = 'middle'; housNumbers.forEach(function(number, i){ var rad = 2 * Math.PI/12 *i; var x = Math.cos(rad) * (r - 30); var y = Math.sin(rad) * (r -30); ctx.fillText(number, x, y); }); for(var i =0;i<60;i++){ var rad = 2 * Math.PI/60 * i; var x = Math.cos(rad) * (r - 18); var y = Math.sin(rad) * (r -18); ctx.beginPath(); if( i % 5 != 0){ ctx.fillStyle = "#eee"; }else { ctx.fillStyle = "#03a9f4"; } ctx.arc(x, y, 2, 0,2*Math.PI, false); ctx.fill(); } } function drawhHour(hour, minute){ ctx.save() ctx.beginPath(); var rad = 2 * Math.PI/12 *hour; var mrad = 2 * Math.PI / 12 /60 * minute; ctx.rotate(rad + mrad); ctx.lineWidth = 5; ctx.lineCap = "round" ctx.moveTo(0, 10); ctx.lineTo(0, -r/2); ctx.stroke(); ctx.restore(); } function drawMinute(minute){ ctx.save() ctx.beginPath(); var rad = 2 * Math.PI/60 *minute; ctx.rotate(rad); ctx.strokeStyle = "#80deea"; ctx.lineWidth = 3; ctx.lineCap = "round" ctx.moveTo(0, 10); ctx.lineTo(0, -r +30); ctx.stroke(); ctx.restore(); } function drawSecond(second){ ctx.save() ctx.beginPath(); var rad = 2 * Math.PI/60 *second; ctx.rotate(rad); ctx.fillStyle = "#f00"; ctx.moveTo(-2, 20); ctx.lineTo(2, 20); ctx.lineTo(1, -r + 18); ctx.lineTo(-1, -r + 18); ctx.fill(); ctx.restore(); } function drawDot(){ ctx.beginPath(); ctx.fillStyle = "#fff"; ctx.arc(0, 0,3,0,2*Math.PI,false); ctx.fill(); } function draw(){ ctx.clearRect(0, 0, width, height) var now = new Date(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds() drawAround(); drawhHour(hour, minute); drawMinute(minute); drawSecond(second); drawDot(); ctx.restore(); } draw(); setInterval( draw,1000);
.
相关推荐
这个“html5 canvas绘制时钟表时间”项目就是利用Canvas API来实现一个实时显示时间的时钟效果。下面将详细解释相关知识点。 1. **HTML5 Canvas 基础**: - Canvas 是HTML5中的一个元素,通过JavaScript API提供了...
总结来说,HTML5 Canvas绘制时钟表时间特效是一种结合了编程和设计的技术,通过JavaScript和Canvas API来实现动态、互动的时钟界面。这种技术对于创建富有创新和个性化的网页应用非常有用,同时也能够帮助开发者深入...
这篇博文“HTML5 Canvas绘制时钟”旨在介绍如何利用Canvas API创建一个实时更新的数字或指针式时钟。我们将深入探讨Canvas的基础知识、相关API以及实现时钟的具体步骤。 1. HTML5 Canvas基础 HTML5 Canvas是一个二...
以下是一个使用Canvas绘制圆形时钟的详细步骤和关键代码解释。 首先,我们需要创建一个HTML页面,包含一个`<canvas>`元素。这个元素用于承载我们的时钟,并通过JavaScript进行交互: ```html <!DOCTYPE html> ...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉体验。在这个“HTML5 Canvas指针时钟表特效”项目中,我们利用Canvas API构建了一个炫酷的时钟界面,适用于个性化...
这个`drawClock`函数首先清除画布,然后绘制时钟的圆形背景。接着,分别根据当前时间计算时针、分针和秒针的角度,并调用`drawHand`方法绘制。最后,绘制了圆心和60条刻度线,每5分钟的刻度线较粗。 在实际应用中,...
本篇文章将深入探讨如何使用Canvas绘制一个钟表,包括小时、分钟和秒针的动态显示。首先,我们需要了解Canvas的基本用法,以及如何利用JavaScript来控制其绘图操作。 1. 获取Canvas元素: 在HTML中创建一个Canvas...
Canvas API提供了一系列方法,如`arc()`用于绘制圆形,`lineTo()`用于绘制线段,`rotate()`用于旋转坐标轴等。 1. **绘制时钟背景**:首先,我们可以画一个圆作为时钟的背景,使用`arc()`方法: ```javascript ...
- `arc()`:绘制圆形或弧线,用于画出钟的指针和刻度。 - `beginPath()`, `moveTo()`, `lineTo()`:开始路径、移动到指定点、画线到另一点,可用于绘制复杂形状,如钟的数字标记。 3. **时间同步**: - `Date...
3. **Canvas API的圆形时钟**: - **arc()方法**:用于绘制圆或部分圆。例如,`ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise)`,其中`(x, y)`是圆心坐标,`radius`是半径,`startAngle`和`endAngle`...
在`drawFace()`内部,我们可以使用`g2d.beginPath()`开始一个新的路径,然后使用`g2d.arc()`绘制圆形的钟表盘,接着用`g2d.stroke()`描边。为了绘制时钟的数字和刻度,我们可以用`g2d.fillText()`和`g2d.rotate()`...
3. 绘制表盘背景:使用fillRect()或arc()绘制表盘的圆形背景,添加阴影效果增加立体感。 三、字体设置 1. 文本样式:在Canvas中,我们可以使用font属性来设置文本样式,包括字体大小、字体类型、颜色等。例如: ``...
在Android开发中,有时我们需要创建独特且具有交互性的UI组件,比如自定义的水平刻度尺和圆形钟表刻度。这些控件可以用于时间显示、进度指示或者数据选择等场景,提供用户友好的交互体验。本文将详细介绍如何在...
canvas为网页提供了一块画布,我们可以在其上绘制图形、图像、动画等。通过JavaScript,我们可以操作canvas的API来实现各种绘图功能。 在我们开始编写代码之前,需要了解绘制时钟的基本思路。绘制一个时钟,需要...
使用`strokeStyle`设置线条颜色,`lineWidth`设置线条宽度,`beginPath`开始一个新的路径,`arc`方法画出圆形表盘,最后`stroke`绘制路径。为了增加视觉效果,我们还添加了表盘的刻度。通过循环遍历,计算每个刻度的...
在这个时钟特效中,Canvas API将被用来绘制圆形的时钟盘面,包括小时、分钟和秒针,以及可能的日期显示。开发者可能会使用`beginPath()`、`arc()`、`lineTo()`等方法来绘制钟表的指针和刻度,`fillStyle`和`...