时钟,对于很多小学生来说都是手到擒来的,在家里也是很常见的,所以在我们对时针不陌生的情况下,我们今天用scratch来做个时钟,精确的到每分每秒的转动。怎么用scratch做时钟?今天和mathscoding一起用编程制作完整的时钟。
scratch做时钟的效果
做时针前,我们来科普下基本的逻辑概念。
时钟各指针的角度关系:
(1)普通钟表相当于圆,其时针或分针走一圈均相当于走过360°角。
(2)钟表上的每一个大格对应的角度是:30°。
(3)时针每走过1分钟对应的角度应为:0.5°
(4)分针每走过1分钟对应的角度应为:6°。
指针的基本认识:
时针:在这个时钟上是那根蓝色的,它最粗、最短,指向现在几点了。
分针:在这个时钟上是绿色的那根,表示现在是几分钟。
秒针:在这个时钟上就是红色那根,它最长、最细,走得还最快,表示时间一秒一秒的过去了。
用scratch做时钟,完整时钟的编程制作步骤
步骤一、打开scratch软件,把默认角色小猫删除,开始制作自己喜欢的钟表,使用角色添加中的绘制功能制作。
步骤二、进入造型画板后,使用圆形工具画个表盘。这里有个技巧,使用圆形工具时,按住Shift键,可以画出一个标准的圆形。
scratch画钟盘
步骤三、绘制好表盘后,将表盘移动到画板的中央位置,圆心中心点的位置要与画板中心位置完全重合。
步骤四、表盘制作完成后,来给钟表标上刻度。手工绘制标的话,根据小时分成12等份,分钟刻度60等份。具体的时钟刻度制作前面已经写过,可以点击查看《怎样在scratch中制作时钟刻度,用编程画出时钟刻度的方法》;
步骤五、接下来我们来画时针、分针、秒针,分别创建三个角色,同样也是绘制的方式。
步骤六、使用线段工具,按住Shift按键,绘制出竖直的线段,时针的特点是最短最粗的,秒针最长最细,分针长度在他们中间,粗细也如此。
scratch画秒针
绘制的时候需要注意的是,指针的起点和造型的中心点完全重合,如果绘制的时候不重合,到时候就会跑偏。所以这个细节很重要,这样才能保证指针在钟表盘的中央。
绘制时针的时候,状态是面向90°的,指向上方。那么每次重新计算,时针的度数都需要从开始计算。先让指针回到指向上方位置,然后再旋转对应的角度,这样旋转度数就不会叠加了。循环让它不停的运行。
步骤七、钟表绘制好了,接下来我们的用编程程序让它动起来。开始写代码了。时针每走动一格是30°,分钟每走动一格是6°,秒针也是6°。结合scratch当前时间积木模块,我们可以知道当前年月日时分秒。
步骤八、角色秒钟的代码,绿旗点击,位置初始到(0,0),新建变量“秒度数”设置初始值为0;面向90方向默认,当前时间旋转的角度,右转,“当前时间的秒…”积木,选择到秒。1秒是走6°的,所以乘以6°。重复执行,每执行一次,右转的度数就得增加6°,一直循环下去,如果“秒度数”旋转到了360°,做个判断,“秒度数”除以360的余数等于0,说明一分钟到了,广播“60秒到了”。
角色秒针的代码
步骤九、角色分钟代码,绿旗点击,位置初始到(0,0),面向90方向默认,当前时间旋转的角度,右转,“当前时间的分…”积木,选择到分。1分是走6°的,所以乘以6°。秒针在走的时候,分针也在走,所以,分钟的开始右转的度数应该是:“当前时间的分…”乘以6°+ “当前时间的秒…”乘以1/60乘以6°;当接收到秒针传过来的“60秒钟到了”,分钟转6°。
角色分针的代码
步骤十、角色时钟代码,绿旗点击,位置初始到(0,0),面向90方向默认,当前时间旋转的角度,右转,“当前时间的时…”积木,选择到时。1时是走30°的,所以乘以30°。时针在走的时候,分针,秒针也在走,所以,时钟的开始右转的度数应该是:“当前时间的时…”乘以30°+ “当前时间的秒…”乘以1/60乘以30°+ “当前时间的分…”乘以1/3600乘以30°;
角色时针的代码
因为时间是24小时制,这里我们只做了12小时制,如果是当前时间大于12小时,我们就用当前的时间-12小时。否则就按12小时执行。
当收到“60秒到了”的消息,时针右转0.5°;