2018-06-14 11:41:03 1427瀏覽
本篇文章扣丁學(xué)堂HTML5培訓(xùn)小編主要是和大家分享一下canvas如何繪制鐘表,把canvas繪制鐘表的方法分享給打大家,對此感興趣的小伙伴就隨小編一起來看一下吧。
看代碼:
注:
當(dāng)然時間也可以不用這樣每隔一秒就獲取,直接獲取一次按秒遞增就行。
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var year,month,day,hour,second,minute;
// 繪制表盤
function drawClockPie(){
ctx.beginPath();
ctx.lineWidth = 2;
ctx.strokeStyle = '#333';
ctx.arc(150,150,146,0,2*Math.PI);
ctx.stroke();
ctx.closePath();
ctx.beginPath();
ctx.arc(150,150,6,0,2*Math.PI);
ctx.fillStyle = 'red';
ctx.fill();
ctx.closePath();
}
// 繪制時刻度
function drawClockHours(){
for(var i = 0,l = 12; i < 12; i++){
ctx.save();
ctx.translate(150,150);
ctx.rotate(i*1/12*2*Math.PI);
ctx.beginPath();
ctx.lineWidth = 5;
ctx.strokeStyle = '#333';
ctx.moveTo(0,-140);
ctx.lineTo(0,-125);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
}
// 繪制分刻度
function drawClockMins(){
for(var i = 0,l = 60; i < 60; i++){
ctx.save();
ctx.translate(150,150);
ctx.rotate(i*1/60*2*Math.PI);
ctx.beginPath();
ctx.lineWidth = 3;
ctx.strokeStyle = '#333';
ctx.moveTo(0,-140);
ctx.lineTo(0,-133);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
}
// 繪制時針
function drawHourPin(){
ctx.save();
ctx.translate(150,150);
ctx.rotate((hour*60*60+minute*60+second)/(12*60*60)*2*Math.PI);
ctx.beginPath();
ctx.strokeStyle = '#333';
ctx.lineWidth = 3;
ctx.moveTo(0,0);
ctx.lineTo(0,-40);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
// 繪制分針
function drawMinPin(){
ctx.save();
ctx.translate(150,150);
ctx.rotate((minute*60+second)/(60*60)*2*Math.PI);
ctx.beginPath();
ctx.strokeStyle = '#333';
ctx.lineWidth = 2;
ctx.moveTo(0,0);
ctx.lineTo(0,-60);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
// 繪制秒針
function drawSecPin(){
ctx.save();
ctx.translate(150,150);
ctx.rotate(second/60*2*Math.PI);
ctx.beginPath();
ctx.strokeStyle = 'red';
ctx.lineWidth = 1;
ctx.moveTo(0,0);
ctx.lineTo(0,-80);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
// 繪制時間文字
function drawText(){
hour = hour >= 12 ? hour - 12 : hour;
var time = '現(xiàn)在是' + year + '年' + month +
'月' + day + '日' + hour + '時' + minute +
'分' + second + '秒';
ctx.font = '15px 黑體';
ctx.fillText(time,24,350);
}
// 獲取時間
function getTimes(){
var date = new Date();
year = date.getFullYear();
month = date.getMonth() + 1;
day = date.getDate();
hour = date.getHours();
minute = date.getMinutes();
second = date.getSeconds();
}
setInterval(function(){
ctx.clearRect(0,0,600,600);
drawClockPie();
drawClockHours();
drawClockMins();
getTimes();
drawText();
drawHourPin();
drawMinPin();
drawSecPin();
},1000);
關(guān)于canvas繪制鐘表的方法扣丁學(xué)堂HTML5在線學(xué)習(xí)小編就先給大家介紹這些,希望對小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。扣丁學(xué)堂是專業(yè)的HTML5培訓(xùn)機構(gòu),不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的HTML5在線視頻供學(xué)員觀看學(xué)習(xí)哦??鄱W(xué)堂H5技術(shù)交流群:559883758。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“HTML5開發(fā)技術(shù)資訊”的相關(guān)文章>>