Python中turtle的填充问题

2021-10-29 17:22
电脑报 2021年39期
关键词:圆弧月相实例

一、创意来源

在今年第24期绘制标准党旗的案例中,我们在画镰刀时遇到了一个问题,在两点间画两条圆弧,即使封闭也只会填充出一个半圆,而不是我们期望的镰刀。于是我就想到Python的填充究竟遵循哪些规律呢?

这个Python案例也是等级考试一级内容的延伸知识点。

二、设计思路

填充问题,是Python考试中turtle的重要知识点。

1. 要设置填充颜色,有两种方法:

(1)color(“画笔颜色”,“填充颜色”);如color(“red”,“green”)。

(2)fillcolor(“填充颜色”)。

2.要使用填充命令:begin_fill()和end_fill()开始填充和结束填充。

3.需要填充的语句块必须在填充命令中间。

4.填充的图形必须是封闭图形。

以上是Python课程里讲解的知识点,那么这足够完成我们需要的填充吗?

我们根据这些基本知识,做几个封闭图形,看看填充情况,这时我们自然会发现:填充是有规律的(世上万物皆有律)!所以我们的思路就是做基本程序,解基本问题。

三、程序设计

根据turtle知识和填充的基本要求,我设计了几个画月牙的实例,运行后看看有什么规律。

1. 填充问题分析

(1)实例一(图1)

运行后发现,虽然画出了封闭曲线,但没有按照我们的思路填充一个弯月,而是填充了整个半圆(图2)。

(2)实例二(图3)

修改上述代码,我们先从下方起点画到上方顶点后,直接从上方顶点画回到下方起点,中间没有抬笔过程。这样画出的也是一个封闭曲线,填充正常(图4)!

其实上两例中,例子1的第11行和第12行代码,例子2的第7行到第9行,旋转的角度和圆弧半径都是经过几次修改测试得到的。

这些角度和圆弧半径不影响后面的规律验证。

(3)实例三

实例三从同一点出发,画封闭图形,运行结果,大家可以看到,填充不正常(图5)。

(4)实例四

实例四也是从同一点出发,画封闭图形,运行结果,大家可以看到,填充正常(图6)。

2. 结论

那么问题来了,从同一点出发画的两个图形,填充效果怎么会不同?

通过试验和分析,我总结出一个结论:涉及圆弧图形的填充时,默认为弧线内填充(圆心和弧线之间)。当需要外侧填充时,必须是用turtle顺次画出的封闭曲线才能正常填充。根据我们总结的规律,将实例三做修改,经过测试,证明了这结论正确(图7)。

四、绘制月相

理解这个关键所在后,大家可以自己编程测试。下面我们就利用这个结论来画出任意大小的月相,当然还是先从简单的开始。

1.月亮基本代码

月有阴晴圆缺,怎么画呢?使用circle(半径,弧度数如果不规定则画圆,步數如果给出就画出多边形)命令(图8)。

同样,代码第8行半径和角度,第9行的距离,也是我一点点修改、测试出来的。运行效果如图,发现月牙大了(图9)。

猜你喜欢
圆弧月相实例
月相历
阅读理解专练(三)
半圆与半圆弧
如何让学生更好地掌握圆弧连接的画法
和月亮交朋友
解读你所不了解的月相表
完形填空Ⅱ
完形填空Ⅰ
任意一个角三等分的尺规画法