rzyzzxw 发表于 2022-5-30 17:32:16

模拟掌控 16--行星运动

本帖最后由 rzyzzxw 于 2022-5-30 20:07 编辑

模拟掌控 16--行星运动这个系列,献给没有掌控板的小朋友,同时也可以疫情线上课教学使用。在接触掌控实物之前,先上了一段模拟课,课是给0基础的初中小朋友上的,大部分教程也可以放到小学高年级使用。这个简单的系列是上课内容记录。小创客课程,欢迎选用《小创客轻松玩转掌控板》。
目标:1、for循环巩固2、数学,天文与编程结合3、变量的应用(本教程不适用小学生)step1太阳大,地球小,地球绕着太阳跑。地球大,月亮小,月亮绕着地球跑。
https://qiniu.makeymonkey.com/1653831222937image.png?imageView2/2/w/800/auto-orient/format/jpg

我们将尝试用掌控模拟地球的环绕太阳的运动。
由于知识水平所限,我们的模拟并不严格,因为我们的环绕轨道是圆形的,实际上它们的环绕轨道是楕圆,并且是有远日点和近日点,远地点和近地点的。
我们的第一个任务是:太阳大,地球小,地球绕着太阳跑。效果:https://qiniu.makeymonkey.com/1653831797041image.png?imageView2/2/w/800/auto-orient/format/jpg


step2观察老师的效果图,思考动画效果如何实现?屏幕中间一个实心圆,这个很好完成啊。一个小实心圆绕它逆时针圆周运动,运动要有坐标点啊,而这些点,正好是一个圆。
为了统一,方便讲解,我们在屏幕中心(64,32)绘一个半径为5的实心圆当做太阳。参考:https://qiniu.makeymonkey.com/1653900548885image.png?imageView2/2/w/800/auto-orient/format/jpg

用一个半径为1的实心圆当地球,地球绕太阳的圆周运行半径为20。如何求出地球的运动坐标呢?上一课中的描点绘圆技能用起来啊。
新建变量Dx,Dy,用它们来存入点的x,y坐标,这样程序简洁,运行也快一点。这一步让学生回想上一课的描点绘圆方法,必要时可以调出程序复习,尝试完成任务。
参考:


效果:
https://qiniu.makeymonkey.com/1653900935401image.png?imageView2/2/w/800/auto-orient/format/jpg

可是现在有一个问题,如何只显示一个地球啊?并且为了提高程序运行速度不频繁清空屏幕?
提示:可以用擦除……实心圆功能
学生尝试,讨论,分享。
参考程序:
https://qiniu.makeymonkey.com/1653901154912image.png?imageView2/2/w/800/auto-orient/format/jpg

为了擦除干净,擦除的圆用了半径2。
上面只转了一圈,重复执行,就可以一直转下去了。
step3地球大,月亮小,月亮绕着地球跑。如何加上月亮绕地运行的效果呢?



月亮更小我们用描点来模拟,月亮绕地球半径我们用5,而月亮的绕地的每个一点都是以地球为圆心的,我们还用描一点然后擦除,实现动画效果。新建变量Dx2,Dy2,用来存入月亮坐标。这一步稍有点难,老师可以讲解一下。
参考程序:
https://qiniu.makeymonkey.com/1653902187842image.png?imageView2/2/w/800/auto-orient/format/jpg

很有意思的动画效果,关机下课。
友情提示:模拟软件能运行的程序刷入掌控板后会暴露出一些bug,在本教程中,三角函数运算后都没有取整,而在掌控板上运行要取整才能描出整数像素点,因为坐标值为小数掌控是无法显示的哦。





rzyzzxw 发表于 2022-5-30 19:55:55

本帖最后由 rzyzzxw 于 2022-5-30 20:12 编辑

友情提示:模拟软件能运行的程序刷入掌控板后会暴露出一些bug,在本教程中,三角函数运算后都没有取整,而在掌控板上运行要取整才能描出整数像素点,因为坐标值为小数掌控是无法显示的哦。step2参考程序修正后如下:
其它程序请自行加上取整函数。


风悠扬0539 发表于 2022-5-31 09:35:19

真好,信息科技啊
页: [1]
查看完整版本: 模拟掌控 16--行星运动