APP下载

Scratch的图形优化

2021-01-18陈新龙

电脑报 2021年50期
关键词:正三角形绘制小明

陈新龙

每年Scratch考级考试中必然会出现关于绘制复杂图形的题目。绘制图形主要考核对画笔积木和重复及旋转积木的掌握,还需要有一定的数学能力和提取图形变化规律的能力。

其实考题中所有复杂图形都是通过简单图形重复构成的,在考试中有些同学会使用重复的代码块进行组合拼搭实现最终的效果。今天就和大家一起探讨图形题目中的程序优化。

例题:图中有6个三角形,第一行有1个正三角形,第二行有2个正三角形,第三行有3个正三角形,每一行的第一个三角形是上下对齐的。小明要用Scratch绘制出这个图形,你觉得小明这样编写程序可以实现效果吗?能否对程序进行优化呢?(图1)

從最终的运行效果我们可以看到小明的方法确实可以实现题目的要求,他先自定义绘制三角形的方法,然后用坐标定位将6个三角形移动到指定的位置,最终代码的长度也适中(图2)。

但如果将题目稍微修改一下,由用户输入行数,绘制出n行三角形,每行三角形的个数依次递增,还能使用坐标定位的方法吗?答案是肯定不行。这个时候我们需要对程序进行整体的优化和修改(图3)。

对原有程序优化的第一步是检查三角形的画法,这一步需要重复很多次,是程序的核心,包含确定画笔的粗细,确定画笔的颜色,重复执行三次,每次左转或者右转120度,确定每次移动的步数。

接下来需确定初始的坐标(0,0),通过“询问需要绘制多少行的三角形”获取绘制的行数。新增变量i(变量i的初始值为1)确定每行三角形的个数,通过双重循环的方式,外层循环代表绘制整体图形的行数,并且设置每行的第一个三角形X的坐标为0,内循环代表每行三角形的个数,通过变量i表示,在内循环中使用自制绘制三角形积木,两个三角形的间隔为20。内循环每循环结束一次,变量i的值增加1,Y坐标增加20(间隔高度根据实际情况来确定)。

优化后的程序进行对比不难发现两者的差距还是很大的,前者通过坐标定位的方法来确定位置,后者通过双重循环的方法来确定位置。

其实这种双重循环的方法是从VB编程中获得的思路。我把VB编程的方法也放在了后面,感兴趣的同学也可以学习(图4)。

在学习编程的过程中,我们需要不断提高自己的逻辑思维与创造力,在分析问题和完成程序的过程中不断去探索,思考最佳、最便捷的解决问题的方式,同时在学习过程中逐渐形成逻辑分析、独立思考创新的思维方式,学会提出问题,解决问题。

猜你喜欢

正三角形绘制小明
Painting ski maps 绘制滑雪地图
绘制童话
无限追踪(二)
绘制世界地图
一道不等式擂台题的改进与相关问题
小明系列漫画小明篇
做不到
做不到
神秘的不速之客
让三角形倒立