如何用scratch画正多边形
各边相等,各角也相等的多边形叫做正多边形。
正多边形的外接圆的圆心叫做正多边形的中心。
正多边形的外接圆的半径叫做正多边形的半径。
中心到圆内接正多边形各边的距离叫做边心距。
正多边形各边所对的外接圆的圆心角都相等,这个圆心角叫做正多边形的中心角。
任务描述
本文将通过scratch编程,绘制任意边数的正多边形,比如正方形、正五边形、正六边形等。
编程思路
正多边形有两大特点:
- 所有的边长都相等
- 所有的角都相等
所以,我们只需要确定好正多边形的边长和转角,每绘制完一条线段,就调整画笔方向,再绘制下一条线段,直至完成整个正多边形。
程序设计
为了让初学者更好的学习和理解绘制的方法和过程,我们先来绘制常见的正方形和正五边形,最后再实现任意正多边形的绘制。
1.绘制正方形
当点击绿旗时,小猫向前移动了100步,先画一条直线,如图所示:
直线绘制效果
原来,这就如同角色手握一只画笔,再添加积木块 “落笔”?之后,角色就可以根据程序的指令在舞台上绘制图形。
既然能够绘制一条直线,那么绘制正方形当然不在话下。为了更好的演示角色面向的方向,我们选择角色小甲壳虫。
由于正方形有4条边,4个直角都为90度,因此我们只需要让角色移动一段距离之后,向右旋转90度,再移动一段相同的距离,向右旋转90度,以此类推,让甲壳虫移动、旋转4次,就可以绘制一个完美的正方形了。程序非常的简单,如下图所示:
绘制正方形程序
注意,在绘制之前,我们做了一些初始化的工作,包括:
- 将甲壳虫移到(-50,50)坐标处,确保绘制的图案处于舞台中心,这个不是必须的,可以随意设置。
- 面向90度,目的是让甲壳虫沿着90度方向开始移动会绘制。
- 全部擦除,这是确保每次绘制之前将舞台上绘制的内容清空。
点击绿旗按钮,执行程序,绘制图案如下:
绘制正方形效果
[小技巧]:可以在右转90度指令的下方,添加一个等待1秒指令,只有就可以更清楚的看到绘制的过程了,你不妨一试。
2.绘制正五边形
既然正方形已经绘制好了,正五边形也就容易了。在刚刚的程序上稍作修改就可以绘制正五边形。不过,首先我们必须明确两个问题:
- 正五边形有几条边?
- 每次旋转多少度呢?
针对第一个问题,简单到不能再简单了,正五边形当然是5条边了,所以重复的次数设置为5次就可以了,移动的步数决定了边长的长度,这里就不再修改,继续使用100步。
针对第二个问题,每次旋转的角度是多少呢?我们一起来分析一下,话说,任意多边形的外角和都是360度,无论是三角形、四边形还是十边形,它们的外角和都是360度。那么正五边形的外角和是多少度呢?当然是360度啦。
你可能会问了,外角是谁,我不认识啊。且听我说来,如下图所标注的角都是外角,所有的外角度数相加是360度。而正多边形的每一个外角度数都是相等的,对于正五边形来说,每一个外角的度数是360 / 5 = 72度。
多边形的外角
因此,角色每移动100步,向右旋转72度即可,绘制正五边形的完整程序如下图所示,标红部分表示修改的部分:
运行程序,甲壳虫依然很快就画出了一个标准的正五边形,如图:
绘制正五边形效果
3.绘制任意正多边形
相信聪明的你已经发现了,绘制正方形和正五边形程序基本上是一样的,不同的只有两个小地方。你肯定在心里盘算着绘制出各种不同的正多边形,程序其实是差不多的,我们需要重点关注的是旋转的角度,同时要注意控制好边长的大小。
比如,正三角形,它的每一个外角是360 / 3 = 120度,那么角色每移动一段相同的距离后需要旋转120度。而正十二边形,它的每一个外角是360 / 12 = 30度,那么角色每移动一段相同的距离需要旋转30度。不过随着边数的增加,移动的距离应该相应的减小,否则就会画出奇怪的图形,如图所示:
舞台边缘挡住了角色的绘制
这是为什么呢?原因是舞台的边缘阻挡了角色的运动,改变了它正常的运动轨迹。解决这一问题的办法就是适当的减小边长,比如改成60步,程序如下:
绘制正十二边形程序
再次运行程序,这一次就完全正常了,如图:
绘制正十二边形效果
针对不同的正多边形,绘制流程是完全一样的,程序也差不多,只有3个地方需要修改:
- 重复的次数,它决定了正多边形的边数
- 移动的步数,它决定了边长的大小
- 旋转的角度
其中,旋转角度和边数之间的关系是二者的乘积为360,及边数 * 旋转角度 = 360度。边长也和边数有关系,边数越多,边长应该越小,二者成反比例关系。为了简化程序,我们可以利用运算类积木块优化刚才的程序,优化如下:
绘制正十二边形代码优化
其中,这里的移动步数,使用了800 / 边数,这保证了边数较少的时候,边长大一点,而当边数较多时候,边长则变短,非常的灵活,当然这里的800经过多次测试得到,你可以设置为其它值,只要测试效果ok就行。
如此一来,我们绘制任意正多边形,只需要改变边数就可以了,其它的都不变,有了这个程序,我们就可以随心所欲的绘制自己所需要的任意正多边形了。等后面学到自制积木的时候,我们可以进一步将整个功能做出自制积木,使用起来就更加方便了哦。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!