陳新龍
本文的創意來自一個Python制作的動態時鐘,由于相關知識點難度較大,我們從中學習思路應用在Scratch中。
之前我們已經在Scratch中編寫過時鐘程序,那次是通過設置數字角色變化與偵測系統時間實現的電子表時鐘。本次實驗我們提高一些難度完成全動態時鐘,用有素材和無素材兩種方法顯示時針、分針、秒針。
這一種做法需要借助素材和背景,時鐘有表盤和指針,因為表盤上存在刻度和數字,比起一根線就可以表示的指針難畫不少。表盤的圖片素材,我們可以從網上尋找好看的背景圖,找一個沒有指針的鐘表盤,方便我們后邊使用畫筆繪制指針。

導入表盤角色后,我們便可以在Scratch中用畫筆模塊繪制時、分、秒的指針。首先我們需要創建新的空白角色或將小貓角色隱藏使用。時針和分針的顏色都是黑色,秒針的顏色是紅色,注意指針的長度要區分正確,時針短粗,秒針最細最長。
理清指針間的角度關系:“秒針:當前時問的秒×( 360/60)”“分針:當前時問的分×(360/60)+當前時間的秒×( 360/60/60)…‘時針:當前時問的時×( 360/12)+當前時問的分×(360/60/12)”。當然指針的繪制算法公式不僅僅存在于一種,大家可以根據自己理解適當地調整算法,畢竟條條大路通羅馬,這里只是給大家提供一種思路,最主要的還是理解秒針轉一圈時其他指針旋轉角度的問題。
這種方法不使用素材,完全用畫筆繪制一個時鐘包括表盤以及指針,實驗中會用到一些三角函數的數學知識(正弦、余弦和正切),難度明顯提高了。二角函數的相關知識點如果忘記了,可以上網查閱相關的資料。

首先繪制表盤圓形,表盤是由1360個(x,v)點旋轉連接起來的線。R為圓的半徑,那么點的坐標可以表示為x=cos*r I y=sin*r;表盤的半徑可以白行調整,我設置的大小為150。表盤外圓繪制完成后,開始繪制表盤的刻度,360度的圓分為60秒,360/60=6,所以每i6度畫一個刻度,為了好看和便于觀察還需要每5個刻度用顏色區分一下。這里我們增加了藍色和紅色的效果能更加清晰地看出時鐘表盤的數字變化。

控制指針變化的方法我們也與第一種方法做出區別,用的算法使用到二角函數,大家可以根據自己的知識水平選擇。
兩種方法都可以繪制出時鐘,一種是借助圖案背景繪制,另外一種通過數學計算和畫筆純繪制,兩種方法難度有差異,大家可以選擇適合自己的方法嘗試。