这是一个很有趣的例子,本次只作为一个非正式的挑战题目,有兴趣的欢迎参与。

编程大作战任务解说—图片旋转

  在scratch旋转一个角色很容,那么将多个角色组成的拼图整体旋转怎么做?scratch真的那么简单还是你把它想简单了?本挑战由少儿编程网原创。

  这是文件下载地址:http://kidscode.cn/product/4497

  我们一直强调编程核心的是思维(算法),对孩子来说就是要求你们开动脑筋去思考怎么来解决问题,而不仅仅是学会怎么去使用一个软件,这个例子或许会让你有一个比较直观的体会。如果你觉得scratch太简单了,那么你不妨来挑战一下。

  下面我们来简单介绍两种截然不同的实现方法:

  方法一:统一角色中心法

  该方法由本站会员raxxar提供,程序实现难度:极易 (适合初级学员)

思路:本挑战拼图是由多个角色组成,要统一旋转最简单的方法就是让每个角色的中心点落在同一个位置上,想像一下风车是怎么转的,这样整体旋转的时候每个角色代码就非常简单了,如下图所示:

编程大作战任务解说—图片旋转

编程大作战任务解说—图片旋转

  所有角色的中心点都在(0,-40),不过这个方法的麻烦之处在于设置角色的中心点。

  查看本案例:http://kidscode.cn/product/4514

  方法二:数学计算法

  具体实现要求掌握三角函数知识。程序实现难度:难(适合广大爱好者,知识内容超过小学范围,通过此方法希望小朋友明白学习课内知识的重要性)

  思路:这种方法与上面的方法完全不同,不需要设置角色中心点,一切都靠数学计算。

  例如:角色初始的中心坐标为(x,y)通过旋转后那么中心就到了(x1,y1),第一步也是最关键的一步,让角色移动到旋转后的位置(x1,y1),如何计算新坐标x1,y1?如下图所示:

编程大作战任务解说—图片旋转

  1、根据当前角色的坐标(x,y)通过反正切计算出夹角a,上图红色三角形所示;

  2、利用得出的夹角a根据三角函数求出斜边r,上图所示;

  3、知道了夹角a,那么旋转后的夹角b=a+旋转角度

  4、根据三角函数计算出旋转后的坐标(x1,y1)

  得到新的坐标,通过脚本将角色移动到(x1,y1)完成第一步,如下图所示:

编程大作战任务解说—图片旋转

  第二步:非常简单,让每个角色执行旋转即可,如上图,那么每个角色旋转30度即可完成。

  查看本案例:http://kidscode.cn/product/4563

  本解说没有一一列出所有方法,更多内容请前往:作品中心(http://kidscode.cn/product/scratchpro.html)。相信还有很多种其它方法,聪明的你有没有想到,欢迎与我们一起分享!分享是一种快乐!