摘要:效果圖為上代碼繪制表盤繪制時刻度繪制分刻度繪制時針繪制分針繪制秒針繪制時間文字現在是年月日時分秒黑體獲取時間注當然時間也可以不用這樣每隔一秒就獲取,直接獲取一次按秒遞增就行。
效果圖為
上代碼:
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 = "現在是" + 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);
注:
當然時間也可以不用這樣每隔一秒就獲取,直接獲取一次按秒遞增就行。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92379.html
摘要:效果圖為上代碼繪制表盤繪制時刻度繪制分刻度繪制時針繪制分針繪制秒針繪制時間文字現在是年月日時分秒黑體獲取時間注當然時間也可以不用這樣每隔一秒就獲取,直接獲取一次按秒遞增就行。 效果圖為 showImg(https://segmentfault.com/img/bVZ15B?w=602&h=738); 上代碼: var canvas = document.getElementById(c...
摘要:效果圖為上代碼繪制表盤繪制時刻度繪制分刻度繪制時針繪制分針繪制秒針繪制時間文字現在是年月日時分秒黑體獲取時間注當然時間也可以不用這樣每隔一秒就獲取,直接獲取一次按秒遞增就行。 效果圖為 showImg(https://segmentfault.com/img/bVZ15B?w=602&h=738); 上代碼: var canvas = document.getElementById(c...
摘要:制作鐘表分成兩部分,一部分是表盤,一部分是時針分針秒針的走動,首先,先繪制表盤繪制表盤圓半徑設置坐標軸原點圓心表盤外圓表盤刻度大格表盤刻度小格表盤時刻數字設置字體樣式字體上下居中,繪制時間利用三角函數計算字體坐標表達式開始繪 制作鐘表分成兩部分,一部分是表盤,一部分是時針、分針、秒針的走動,首先,先繪制表盤: // 繪制表盤 getDialClock = () => { c...
摘要:但需要注意的是,需在使用前調用。當然,你愿意的話也可以兩者結合著用。繪制圖像相信很多入門的,都看不到這個地方,不就是繪制圖像的嘛,啊不準確,是繪制圖形的。明確的說,是指圍繞原點圖像旋轉弧度。 前言 本文寫在七月底,進來不加班就整理了一下,一些非常基礎的知識,對于canvas剛入門的人來說,值得閱讀一下。 來個氣勢如虹的開頭 與看各種文章相比,我更喜歡數學里的邏輯;與學習各種日新月異的框...
閱讀 1877·2021-11-12 10:36
閱讀 2309·2021-09-01 10:29
閱讀 2337·2019-08-30 15:56
閱讀 1015·2019-08-30 12:56
閱讀 2343·2019-08-26 13:58
閱讀 2264·2019-08-23 18:38
閱讀 1486·2019-08-23 18:32
閱讀 2103·2019-08-23 16:53