`

canvas绘制圆形钟表

阅读更多

【前言】

   分享个特效,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);

 

 

 

 

 

 

 

 

 

 

 

 

.

  • 大小: 16.4 KB
分享到:
评论

相关推荐

    html5 canvas绘制时钟表时间.zip

    这个“html5 canvas绘制时钟表时间”项目就是利用Canvas API来实现一个实时显示时间的时钟效果。下面将详细解释相关知识点。 1. **HTML5 Canvas 基础**: - Canvas 是HTML5中的一个元素,通过JavaScript API提供了...

    html5 canvas绘制时钟表时间特效代码

    总结来说,HTML5 Canvas绘制时钟表时间特效是一种结合了编程和设计的技术,通过JavaScript和Canvas API来实现动态、互动的时钟界面。这种技术对于创建富有创新和个性化的网页应用非常有用,同时也能够帮助开发者深入...

    HTML5 Canvas绘制时钟

    这篇博文“HTML5 Canvas绘制时钟”旨在介绍如何利用Canvas API创建一个实时更新的数字或指针式时钟。我们将深入探讨Canvas的基础知识、相关API以及实现时钟的具体步骤。 1. HTML5 Canvas基础 HTML5 Canvas是一个二...

    js Canvas绘制圆形时钟教程

    以下是一个使用Canvas绘制圆形时钟的详细步骤和关键代码解释。 首先,我们需要创建一个HTML页面,包含一个`&lt;canvas&gt;`元素。这个元素用于承载我们的时钟,并通过JavaScript进行交互: ```html &lt;!DOCTYPE html&gt; ...

    HTML5 Canvas指针时钟表特效.zip

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉体验。在这个“HTML5 Canvas指针时钟表特效”项目中,我们利用Canvas API构建了一个炫酷的时钟界面,适用于个性化...

    微信小程序使用canvas绘制实现时钟

    这个`drawClock`函数首先清除画布,然后绘制时钟的圆形背景。接着,分别根据当前时间计算时针、分针和秒针的角度,并调用`drawHand`方法绘制。最后,绘制了圆心和60条刻度线,每5分钟的刻度线较粗。 在实际应用中,...

    canvas如何绘制钟表的方法

    本篇文章将深入探讨如何使用Canvas绘制一个钟表,包括小时、分钟和秒针的动态显示。首先,我们需要了解Canvas的基本用法,以及如何利用JavaScript来控制其绘图操作。 1. 获取Canvas元素: 在HTML中创建一个Canvas...

    Canvas时钟绘制

    Canvas API提供了一系列方法,如`arc()`用于绘制圆形,`lineTo()`用于绘制线段,`rotate()`用于旋转坐标轴等。 1. **绘制时钟背景**:首先,我们可以画一个圆作为时钟的背景,使用`arc()`方法: ```javascript ...

    用canvas画的会走的钟

    - `arc()`:绘制圆形或弧线,用于画出钟的指针和刻度。 - `beginPath()`, `moveTo()`, `lineTo()`:开始路径、移动到指定点、画线到另一点,可用于绘制复杂形状,如钟的数字标记。 3. **时间同步**: - `Date...

    html5 canvas圆形时钟代码.zip

    3. **Canvas API的圆形时钟**: - **arc()方法**:用于绘制圆或部分圆。例如,`ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise)`,其中`(x, y)`是圆心坐标,`radius`是半径,`startAngle`和`endAngle`...

    js+html5实现canvas绘制网页时钟的方法.docx

    在`drawFace()`内部,我们可以使用`g2d.beginPath()`开始一个新的路径,然后使用`g2d.arc()`绘制圆形的钟表盘,接着用`g2d.stroke()`描边。为了绘制时钟的数字和刻度,我们可以用`g2d.fillText()`和`g2d.rotate()`...

    使用canvas绘制一个动态的表盘案例使用的字体

    3. 绘制表盘背景:使用fillRect()或arc()绘制表盘的圆形背景,添加阴影效果增加立体感。 三、字体设置 1. 文本样式:在Canvas中,我们可以使用font属性来设置文本样式,包括字体大小、字体类型、颜色等。例如: ``...

    Android-自定义水平刻度尺和圆形钟表刻度

    在Android开发中,有时我们需要创建独特且具有交互性的UI组件,比如自定义的水平刻度尺和圆形钟表刻度。这些控件可以用于时间显示、进度指示或者数据选择等场景,提供用户友好的交互体验。本文将详细介绍如何在...

    js+html5实现canvas绘制网页时钟的方法

    canvas为网页提供了一块画布,我们可以在其上绘制图形、图像、动画等。通过JavaScript,我们可以操作canvas的API来实现各种绘图功能。 在我们开始编写代码之前,需要了解绘制时钟的基本思路。绘制一个时钟,需要...

    canvas绘制表盘时钟

    使用`strokeStyle`设置线条颜色,`lineWidth`设置线条宽度,`beginPath`开始一个新的路径,`arc`方法画出圆形表盘,最后`stroke`绘制路径。为了增加视觉效果,我们还添加了表盘的刻度。通过循环遍历,计算每个刻度的...

    HTML5+Canvas实现日期圆形时钟特效源码.zip

    在这个时钟特效中,Canvas API将被用来绘制圆形的时钟盘面,包括小时、分钟和秒针,以及可能的日期显示。开发者可能会使用`beginPath()`、`arc()`、`lineTo()`等方法来绘制钟表的指针和刻度,`fillStyle`和`...

Global site tag (gtag.js) - Google Analytics