码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。
上节课的课后作业是让小海龟绘制正五边形、五角星和正八边形。您是否已经找到了问题的解决方法呢?今天我们来继续探讨。
绘制正多边形涉及到一些基本的几何知识,这些知识已在本项目的前导部分进行了介绍,我们在这里就可以“单刀直入”了。
首先进行正五边形的绘制。
由于正五边形与正方形(也就是正四边形)并没有本质的区别,只是多了一条边,每两条边之间的夹角不同罢了。所以,我们可以在上一个项目的代码基础上进行“改造”。
我们先来“增加一条边”,也就是再多增加一条“t.forward(100)”和一条“t.right(90)”语句。
再来修改“两条边之间的夹角”。由前导部分的几何知识可知,我们画完每条边后旋转的所有角度之和,应等于多边形的外角和,也就是360度。故绘制正五边形时,每次旋转的角度应为360➗5=72(度)。好了,我们将每条“t.right(90)”语句中的“90”度都改为“72”度,如下图所示。
运行程序,得到我们今天绘制的第一个图形—-等一下,不是说好的应该画出一个“正五边形”吗?这个是什么鬼!
别着急,检查一下问题出在哪里。原来是第3次旋转的角度仍然为“90”,忘记改为“72”了!修改后重新运行,这下好了,得到了一个完美的正五边形。
问题虽然解决了,但这也不由得引起了我们的一些思考—-有多处需要统一修改的参数时,很容易遗漏一些地方,而使得程序产生错误的结果。能否只修改一次,就将所有相同的参数都改正过来呢?—-有同学马上想到了“查找并替换”的方法。对于较短的程序而言,这或许是个办法;但对于成千上万行的代码,这无异于一个噩梦。因此,今天我们介绍一种更高级的技巧—-定义变量。
其实上次课我们已经初步接触过了变量,还记得我们将海龟的画笔定义为“t”吗?对,就是那句“t = turtle.Pen()”。所谓“变量”,听起来玄乎,其实大致可以把它理解为“一个代号”,代表着一个有一定意义的数字,比如可以用“angle”代表“旋转角”、用“length”代表“边长”等等。而且,这个数不是一成不变的,而是可以根据需要在程序中随时进行变化。关于变量的定义就说这么多,没有完全理解也没关系,以后用着用着就理解了。
进入实战。定义变量“angle”代表旋转角度,并为其赋初始值“72”(如下图红线所示)。
再将所有需要该旋转角度的地方,用变量“angle”替换原来的数字(如上图蓝线所示)。我们的程序就改造好了。
运行一下试试,一样的完美!但是现在,如果再修改旋转角度的话,我们只需把那一处“72”改为我们所需的角度即可,再也不会发生漏改的情况了。
真的是这样吗?是真是假,一试便知。我们现在把“72”改为“144”,然后重新运行程序,是不是很神奇呢!
项目小结:
在今天的项目中,我们:
-
进一步探讨了创建变量的方法;
-
学会了使用变量来代替相同的参数、简化程序修改、避免出错的方法;
-
学会了绘制正五边形和五角星的方法(其实也相当于学会了绘制正N边形和N角星的方法)。
⚠️ 创建和使用变量是非常重要的内容,会贯穿今后学习的全过程。
课后思考:
今天我们一起完成了绘制正五边形和五角星的作业,还有正八边形没有画,留给大家继续完成。画完正八边形,再试试正二十边形吧。
之前我们绘制的图形边长都是“100”,如果想绘制更大或更小的图形呢?相信“变量”能帮到您。