为了账号安全,请及时绑定邮箱和手机立即绑定

为什么按视频上写的最后出不来圆呢,求大神指教


代码什么的都对

正在回答

2 回答

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>canvas clock</title>

<style type="text/css">

div{text-align: center; margin-top: 230px;}

#clock{border: 1px solid #fff;}

</style>

</head>

<body>

<div>

<canvas id="clock" height="200px" width="200px"></canvas>

</div>

<script type="text/javascript">

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.save();

ctx.translate(r, r);

ctx.beginPath();

ctx.lineWidth = 10;

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

ctx.stroke();

drawBackground();

</script>

</body>

</html>

为什么写成上面的代码不能显示

0 回复 有任何疑惑可以回复我~

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>canvas clock</title>

<style type="text/css">

div{text-align: center; margin-top: 230px;}

#clock{border: 1px solid #fff;}

</style>

</head>

<body>

<div>

<canvas id="clock" height="200px" width="200px"></canvas>

</div>

<script type="text/javascript">

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.save();

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='#ccc';

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

}

ctx.fill();

}

}

//时针

function drawHour(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=6;

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.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();

ctx.fillStyle='#c14543';

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

ctx.rotate(rad);

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();

drawBackground();

drawHour(hour, minute);

drawMinute(minute);

drawSecond(second);

drawDot();

ctx.restore();

}

draw();

setInterval(draw,1000);

</script>

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

慕桂英6574974

我这样写可以显示,你看下吧
2016-11-29 回复 有任何疑惑可以回复我~
#2

慕粉4183213 提问者

如果只是想显示圆为什么不行
2016-11-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么按视频上写的最后出不来圆呢,求大神指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信