Python中turtle的填充问题

来源 :电脑报 | 被引量 : 0次 | 上传用户:mxltx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

一、创意来源


  在今年第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)。


  2.月相基本知识
  月相,天文学术语(phase of the moon),是指天文学中对于地球上看到的月球被太阳照明部分的称呼。月球绕地球运动,使太阳、地球、月球三者的相对位置在一个月的时间中有规律地变动。因为月球本身不发光,且不透明,只有月球直接被太阳照射的部分才能反射太阳光。我们从不同的角度上看到月球被太阳直接照射的部分,这就是月相的来源。月相不是由于地球遮住太阳所造成的(这是月食),而是由于我们只能看到月球上被太阳照到发光的那一部分所造成的,其阴影部分是月球自己的阴暗面。
  参考月相图,这里不做过多解释,有兴趣的同学可以自己查找相关知识(图10)。



  3.月相画法规律
  那大家一定會想,各种月相都能画出来吗?有规律吗?咱们看图说话,假设两圆相交的上侧部分是要画的月亮(图11)。



  外圆O、内圆O'的半径为r、r',我们先画一个半径为r的半圆,turtle的方向正好转过180度,要想画出下面的小弧,turtle必须旋转一个角度a,然后画个内圆圆弧,大小为a',由图中可以看出,a'=180-2* a,而半径r'=r/cos(a),因此,画内弧时,要转过的角度和半径知道了,我们就可以画月亮了。
  4.月相代码程序
  代码如图12。



  运行,输入内圆弧度数相应数值即可(图13)。



  其实这个月亮是在屏幕中心上方的,新月、残月、凸月等月相怎么得到呢(图14)?



  运行程序,输入月亮位置坐标、月亮的朝向、内圆弧度数和外圆半径,即可画出任意方向和大小的月亮。注意外圆半径与横纵坐标之和不能大于屏幕尺寸(图15)。



  如果想画凸月,内圆弧度数大于90即可。如果是满月,那就输入180,其他情况大家可以自行测试,其取值范围是0-180(图16)。


五、测试与改进


  程序编写过程中,最好边输入代码,边测试,这样可以随时调整程序。
  这个案例用到了列表、字符串、数据转换、绝对值等相关知识。math是数学模块,和turtle一样,使用前需要导入。
  案例的讲解过程,即是我的实际操作过程,只是遇到了问题,都是经过多次修改、测试得到的结果。既需要耐心,又需要知识点扎实。在此更希望在学习中能真正做到独立思考,研究解决问题的方法和思路,其实这是提高编程能力的最好办法。如有不当之处,请诸位斧正!
其他文献
台式机显卡缺货涨价,游戏本当然也没能幸免,不少玩家关注的I+N机型都变成了要抢购的“空气”,与其忍受天天盯着电商页面等到货通知、到货抢不到干瞪眼、部分商家趁火打劫使劲加价,不如直接考虑一下最近货源充足、体验又好的AMD平台游戏本,A+A,A+N的强力组合都有,快来看看哪款是你的菜。“超威卓越平台甜品级双A组合”惠普OMEN暗影精灵7锐龙版  规格与配置  ■屏幕:16.1英寸/144Hz/FHD/
期刊
秋高气爽,适合赏月、拍月,很多网友说,当月亮可见时,很难拍到星星的好照片,但这并非完全不可能,合适的曝光可以做到这一点。16-35mm f/2.8L,16mm/手动曝光(f/2.8,30秒)/ ISO 3200/ WB:钨钢三脚架第一步:拍摄新月  信不信由你,上面的图片可能看起来是满月,但它实际上是一个上弦月!如果你真的在满月的晚上拍摄,你就看不到星星了。其他满月的时候月相也是如此,如果你想在同
期刊
摘要:目的:研究针对性护理用于小儿重症病毒性脑炎合并呼吸衰竭的价值。方法:2019年7月-2021年6月本科接诊重症病毒性脑炎合并呼吸衰竭患儿80名,随机均分2组。研究组采取针对性护理,对照组行常规护理。对比意识障碍恢复时间等指标。结果:针對意识障碍、肢体障碍和颅神经障碍恢复时间,研究组分别是(1.25±0.21)d、(10.34±1.27)d、(9.11±1.32)d,比对照组(4.38±0.9
期刊
一周又过去啦,大家有在师姐(微信:yhmd0808)这里买到什么优惠好物吗?接下来跟着师姐来看看本周又有哪些反馈比较好的单品吧!想以低价入手其他好物的小可爱记得加师姐微信哦,同步更新福利群和朋友圈哈。精酿啤酒  青島特产精酿原浆啤酒,下单才会灌装,保质期只有10天,顺丰冷链发货。一罐是2升,话说原浆啤酒真的比普通啤酒好喝吗!  @1***q:酒花又浓又足,有一股浓厚清新的麦芽香气味,口感非常好。 
期刊
这个疫情依然严峻的国庆长假,大家都怎么过的呢?相信有不少小伙伴在做好防护的情况下,依然去了自己心仪的景点;也有不少人跟风去了“旅游胜地”打卡,却真的只是去打了卡。不知道有多少人习惯做详细的出游攻略,小崔姐反正在出行前通常会用小本本将路上可能出现的情况、可去的景点、备选方案做一些记录,就为了防止自己过“打卡式”旅游假期。  你的旅游攻略里有多少打卡式景點?  用“有缘千里来相会”来形容打卡式旅游最合
期刊
摘要:目的:探究PBL教学法在牙周病学全英教学中的可行性。方法:随机选择90名河南大学2017-2018级口腔本科生参加项目,将学生分成三组,即传统教学组,PBL+中文组及PBL+全英文组,比较PBL及全英文教学在牙周病教学的效果及学生对其满意度。结果: PBL+全英文组与传统教学组及PBL+中文组相比学生的文献综述成绩较高,均有统计学差异(P0.05)。文献综述成绩显示PBL+全英文组平均分为8
期刊
摘要:目的 分析在对妊高症产妇产后出血护理的过程中将优质护理干预进行运用的作用。方法 研究在本院2020年2月至2021年5月所接诊的患者中抽选60例为研究对象,综合组内随机性选择的方式,取其中30例,在产后接受常规护理,即对照组,余下患者在為其护理的过程中则将优质护理进行运用,即观察组。分析护理效果。结果 结合对两组产妇住院时间、护理满意度以及出血量对比,观察组均存在优势,P<0.05。结论 在
期刊
摘要:目的:探究中医护理干预在痔疮术后便秘患者中的应用效果。方法:选取2018年10月至2019年10月收治的124例痔疮术后便秘的患者,将其按照交替分组法分为对照组和观察组,对照组应用常规护理,观察组应用中医护理干预,对比两组便秘解除率及排便情况。结果:观察组便秘解除率高于对照组,且观察组首次排便时间及平均排便时间均短于对照组,差异有统计学意义(P0.05),具有可比性。  1.2方法  1.2
期刊
傳统山楂汁都没这口感  友友们,师姐最近搜罗到一款超清爽的果汁,好适合有“普通饮料都喝遍了,有新鲜一点的饮品吗?”这种想法的小可爱。  先说一下这款饮料的来历吧,创始人鸽子是开烤串店的,因为想要一款配合撸串喝的饮料,这款饮料需要同时满足几个特点:解辣、解油腻、消食,找了一圈市面的饮料都不满意,于是她的团队就自制了这款山楂饮料。  山楂饮料在店内积累了好口碑,于是2018年团队在产品打磨验证三年后尝
期刊
純莱阳梨熬制  秋天燥,冬天干,皮肤干巴溜秋不说,嗓子也干痒不舒服,严重时还附赠咳嗽,每天都得想办法多给自己补一点水。白开水吨吨吨喝几大杯我实在是下不去口,饮料吧又觉得不健康,想来想去还是秋梨膏才能当秋冬润燥补品的一番!  市面上做秋梨膏的商家真的非常非常多,师姐买了多次,今年给你们选出了这款好评率、回购率都超高的沁知园秋梨膏!  他家的秋梨膏采用的是莱阳梨。莱阳梨有400多年的种植历史,以前是皇
期刊