模拟掌控 20--分秒必争
本帖最后由 rzyzzxw 于 2022-7-13 16:32 编辑模拟掌控 20--分秒必争
这个系列,献给没有掌控板的小朋友,同时也可以疫情线上课教学使用。小创客课程,欢迎选用《小创客轻松玩转掌控板》,用掌控板上课,比模拟运行效果要好多了。
任务目标:1、用三角函数知识做出模拟时钟秒针和分针、时针的运行效果。2、巩固for循环和三角函数。
step1任务从秒针开始。前面的教程中我们学过利用三函数知识描点画圆。可以复习回看一下。
圆周一共360度,秒针从90度出发,顺时针,每秒运行6度,运行到-270度。角的推广知识可以参考数学:
step2关于for循环的复习写如下程序,模拟运行。
https://qiniu.makeymonkey.com/1657695824073image.png?imageView2/2/w/800/auto-orient/format/jpg
0-10,一共11个数字。
https://qiniu.makeymonkey.com/1657695905419image.png?imageView2/2/w/800/auto-orient/format/jpg
1-10,一共10个数字。
结合step1的角的扩展知识,我们要让表针在平面上转一周(360度),需要表针从 y轴正半轴出发,顺时针旋转360度。
https://qiniu.makeymonkey.com/165769642612626144428cfc455be1dc428309b47dc1.jpg?imageView2/2/w/800/auto-orient/format/jpg
请思考,我们如何在for循环中体现出来?有同学说:
https://qiniu.makeymonkey.com/1657696585832image.png?imageView2/2/w/800/auto-orient/format/jpg
这样对么?程序走一下:
https://qiniu.makeymonkey.com/1657696682941image.png?imageView2/2/w/800/auto-orient/format/jpg
从90到-270,一共361个数。那个一个圆周360度,这就不对了啊。仔细想想,从step1知识中,90度和-270度在坐标系中是重合的啊,看来只能用一个了。
同学讨论一下,有两种方法来处理,89到-270,90到-269。程序走下。
https://qiniu.makeymonkey.com/1657697028300image.png?imageView2/2/w/800/auto-orient/format/jpg
https://qiniu.makeymonkey.com/1657697079483image.png?imageView2/2/w/800/auto-orient/format/jpg
哪一个在应用中是合适的呢?答案是90到-269。大家想想,表针是不是从0秒开始运行的啊,0秒对应的不就是90度吗。
step3有了上面的两步学习与讨论,程序先从秒针开始写吧。算一算,1分钟=60秒,1秒秒针要走多少度啊。对啊。360/60=6。
我们用一个小圆当表盘中心,一条稍长的线段做表针吧。
https://qiniu.makeymonkey.com/1657697887213image.png?imageView2/2/w/800/auto-orient/format/jpg
我们重点是确定秒针的终点了。复习回顾step1知识:用三角函数来处理。
https://qiniu.makeymonkey.com/1657698208067image.png?imageView2/2/w/800/auto-orient/format/jpg
想一想,秒针从90-84-78-……每秒走6度,是不是算出这些角度的三角函数值,乘上r,再经过平面坐标与掌控坐标的转换得出秒针终点坐标啊。
自行尝试一下吧。参考:
这里秒针用了30像素点的线段做秒针。https://qiniu.makeymonkey.com/1657698354817image.png?imageView2/2/w/800/auto-orient/format/jpg
重复10次,测试一下,看看有没有问题。
https://qiniu.makeymonkey.com/1657698582029image.png?imageView2/2/w/800/auto-orient/format/jpg
step4秒针完成啦,想一想,自己能不能用同样的方法,来完成分针的程序。
参考程序:这里用25个点的线段做分针。为了加快测试,等待用了0.1。https://qiniu.makeymonkey.com/1657699169274image.png?imageView2/2/w/800/auto-orient/format/jpg
step5秒针和分针做完了,下面来做时针。要进行一个计算,当分针走6度时,时针应该走多少度。1时=60分1时对应表盘上的30度。所以分针走6度,时针走0.5度。因为模拟中不支持for循环0.5步长间隔,所以我们用变量来写。
参考:https://qiniu.makeymonkey.com/1657700266390image.png?imageView2/2/w/800/auto-orient/format/jpg
然后又加了4 个小点来指示上下左右。
https://qiniu.makeymonkey.com/1657700443653image.png?imageView2/2/w/800/auto-orient/format/jpg
那到这里,时针基本上完成了。一节课的时间紧紧的。其实程序还需要进一步完善,模拟的话运行一小会还可以,时间一长就不好了,所以还在掌控板上测试吧。
很多编程的功能模拟实现不了,还是早早的采购掌控板上课吧。
这个教程并没有完全实现时钟效果,仅仅做一节模拟课来用。伙伴们可以优化完善下。 优秀
页:
[1]