我的分针秒针去哪里了???

来源:3-3 Canvas静态的时分秒

MY裴秀智4043005

2017-05-07 12:00

var dom = document.getElementById('clock');

var ctx = dom.getContext('2d');

var width = ctx.canvas.width;

var height = ctx.canvas.height;

var r = width / 2;


function drawBackground(){

ctx.translate(r,r);

ctx.beginPath();

ctx.lineWidth =10;

ctx.arc(0,0,r - 5,0,2*Math.PI,false);

ctx.stroke();



var hourNumbers = [3,4,5,6,7,8,9,10,11,12,1,2];

ctx.font ='18px Arial';

ctx.textAlign ='center';

ctx.textBaseline = 'middle';

hourNumbers.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 = '#000';

ctx.arc(x,y,2,0,2*Math.PI,false);

}else{

ctx.fillStyle = '#ddd';

ctx.arc(x,y,2,0,2*Math.PI,false);

}

ctx.fill();

}

}


function drawHour(hour){

ctx.save();

ctx.beginPath();

var rad = 2 * Math.PI / 12 * hour;

ctx.rotate(rad);

ctx.lineWidth = 6;

ctx.lineCap = 'round';

ctx.moveTo(0,10);

ctx.lineTo(0,-r/2);

ctx.stroke();

ctx.resore();

}


function drawMinute(minute){

ctx.save();

ctx.beginPath();

var rad = 2 * Math.PI / 60 * minute;

ctx.rotate(rad);

ctx.lineWidth = 3;

ctx.lineCap = 'round';

ctx.moveTo(0,10);

ctx.lineTo(0,-r+30);

ctx.stroke();

ctx.resore();

}


function drawSecond(second){

ctx.save();

ctx.beginPath();

var rad = 2 * Math.PI / 60 * second;

ctx.rotate(rad);

ctx.moveTo(0,10);

ctx.moveTo(-2,20);

ctx.lineTo(2.20);

ctx.lineTo(1,-r+18);

ctx.lineTo(-1,-r+18);

ctx.fill();

ctx.stroke();

ctx.resore();

}


drawBackground();

drawHour(4);

drawMinute(30);

drawSecond(15);


写回答 关注

1回答

  • 心海云端
    2017-05-08 15:50:31

    ctx.restore();

    restore写错了

Canvas 绘制时钟

canvas画出漂亮的时钟,通过本教程能重新掌握一些几何知识

49750 学习 · 160 问题

查看课程

相似问题