HTML5_利用canvas_API_製作精美時鐘方法(整合)_part3

codepen
https://codepen.io/pen/

一個時鐘需要捨麼特色元素呢??

一個時鐘  需要 時針、分針、秒針

一個時鐘需要幾個間隔呢????

一個時鐘需要12個整點(1點、2點、3點、.......12點)

一個時鐘可能需要一個圓形的外框





要如何控制時針、分針、秒針的旋轉呢??
要怎麼控制它圓型旋轉繪製呢???
(好像可以利用rotate方法)

要怎麼設計圓形外框呢??? 
(好像可以利用arc方法)

要怎麼繪製12個整點粗線段,
還有每兩個整點間隔的4條細線段呢??
(好像可以用stroke方法)



怎麼取等距間隔呢???



Step1.  定義畫布  










用canvas標籤  來乘載我們的畫布

Step2.定義時鐘方法 用來繪製時鐘
內部創建一個Date對象幫我們得到當前時間












var 變數 = new Date(),

變數 = document件.getElementById("id").getContext("2d");












   
document物件 
擁有 getElementById()函數(方法)

一行簡寫寫法(一行宣告用 , 隔開)











多宣告一行寫法(變兩行)








再多宣告一行的寫法(變三行)





















趕快利用  translate()方法移動畫布原點



















========================================

利用  scale()方法縮放畫布

縮放之前







縮放之後









========================================
已經完成了12個整點的繪製了

這裡12個整點線段  屬於  一組組件

用一組
contex.save();
......

context.restore();

來包圍

想法是我們要 重複 繪製  線段 12次










用迴圈來做

 12個整點(hr)一次轉30度(180/60)

=====================================

秒針走的60個黑細線段





















時鐘總共有12個間隔(距)
在每個間隔中重複繪製4個細小線段
到整點   分鐘數為五的倍數(5,10,15,20.....)
跳過繪製動作

這裡線段畫太長了  作修正























第一階段

https://codepen.io/anon/pen/BjXMMK?editors=0010

=====================================
再來我們又要來畫  時針分針秒針

【JavaScript Math 對象】
屬性
Math.PI (圓周率)  =3.14159
Math.E (尤拉數/自然對數的底數) =2.718
Math.LN2 (2的自然對數)=0.693
Math.LN10(10的自然對數)=2.302
Math.LOG2E(以2 為底e 的對數)=1.442
Math.LOG10E(以10 為底的e 的對數)=0.434
Math.SQRT2(2的平方根)=1.414
=====================================
Math.PI = 180度

數學上常使用     將徑度換算成角度 的換算
Math.PI/180

 PI 代表圓周與直徑之比例的數學常數     


PI= 圓週 / 直行  = 3.141592653589793

弧度 =  1*PI = 180度  

弧度 = 2 * PI  * r(半徑) = PI * (2r) = PI * R(直徑)
=====================================
轉動  時針  肯定  轉動一個小時!!!

「時針」: 一圈有12個小時,每個要轉動30度



「分針」:一小時有60分鐘,一圈有12個小時,每個要轉30度


一個小時有60分鐘,12個小時就有720分鐘,因此每個轉0.5度




「秒針」:















顏色色碼表: http://www.color-hex.com/color/ea00b7



再加個外框吧!!!!
















顏色色碼表:http://www.color-hex.com/color/008751


之後要讓它動起來

目前靜止的優~~~

https://codepen.io/anon/pen/LNPQVe?editors=0010

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header