Canvas 實現乙個時鐘

2021-08-22 02:55:14 字數 1574 閱讀 7008

使用canvas實現另乙個小時鐘,效果圖如下:

前端html**:

canvas not supported

下面是example.js的具體實現:

var canvas = document.getelementbyid("canvas");

var context = canvas.getcontext("2d");

var font_height = 15;// 字型大小

var margin = 35; // 邊距

var hand_truncation = canvas.width/12; // 分鐘需要減去的半徑

var hour_hand_truncation = canvas.width/10;// 小時針需要減去的半徑

var number_spacing = 20; // 數字間距

var radius = canvas.width/2 - margin; // 半徑

var hand_radius = radius + number_spacing; // 指標半徑(數字間距)

// 繪製圓

function drawcircle()

// 繪製中心點

function drawcenter()

// 繪製數字

function drawnumbers());

}// 繪製指標

function drawhand(loc, ishour , ismin)

// 繪製所有指標

function drawhands()

// 畫鍾

function drawclock()

context.font = font_height + 'px arial';

loop = setinterval(drawclock, 1000);

另外,實現時鐘的主要的難點如下:

在刻畫指標的時候採用了這樣的處理方法:

小時取1-12 但是我們會乘以5,因為我們把乙個圓分成了60個小刻度,這樣在渲染的時候對於時、分、秒的處理就變得很容易:

時指標的偏移度數(我們取canvas下的偏轉度數)= * (2 * π) - π/2。

具體理解如下:

首先我們以canvas旋轉座標定義,順時針為+,逆時針為-,這樣我們回歸到0度數。假設現在需要渲染1:00,小時指標情況,顯然1個小時佔據圓盤的30度的夾角,我們從0開始旋轉30度角成:

但是實際上1:00的表盤時指標的顯示應該為:

用canvas繪製乙個簡易時鐘

在見識了html5中canvas的強大,筆者準備製作乙個簡易時鐘。下面就是成果啦,製作之前我們先分析一下,繪製乙個時鐘需要做哪些準備。一 1.首先這個時鐘分為表盤,指標 時針,分針,秒針 和數字三部分。2.表盤是個圓,這個簡單。3.繪製指標時,需要先獲取到系統時間,然後找到時間和角度的關係。4.然後...

canvas實現動畫時鐘

實現效果如下 1.建立canvas元素 沒有金剛鑽就不要攬瓷器活2.繪製雙圓 var drawing document.getelementbyid drawing if drawing.getcontext 3.繪製刻度 繪製刻度 context.font bold 14px arial cont...

canvas實現簡易時鐘效果

最終效果 1 設定canvas環境,這一部分比較基礎,不做詳細展開。var canvas document.getelementbyid mycanvas canvas.width document.documentelement.clientwidth 0.75 canvas.height doc...