一份问卷调查,期待听到您的声音
小V同学的妈妈收到了礼物,直言“理工小男生制造的母亲节小浪漫直击老母亲内心最柔软的部分”。
母亲节编程作品
这才是礼物应该有的样子!
他的包装艺术做得非常棒,还给妈妈做好了一步一步的指引,最后一步那个“等着”也太逗了!
礼物之神秘,用心之细腻,尽在不言中。
我原本计划只是复习一下Turtle绘图的知识,并完成一些准备好的复杂图案。里面也有一个红心图案,准备让同学们课上画一画,好作为献给母亲节的礼物。
没想到小V同学很快就画完了要求的这些。
——老师,我不想送妈妈这个简单的桃心,我要画一朵花。
我说,好啊,什么样的花呢?
他默默地把之前的代码注释掉,然后写下来了一段for循环。
for i in range(36):
t.circle(50)
t.right(10)
啊,原来最终是想画一个这样的东西。这也不难啊,就连续画36个圆而已。
这就是最终的花吗?
——不,这只是花盘,我还得给它加上颜色。怎么加颜色呢?
在你要加颜色的部分,前面加上begin_fill(),结束时加上end_fill()就可以了。
于是,图案变成了下面这样:
看着有点像向日葵?
——是的,老师,这是花盘。我还得添上花瓣。不对,得先改个颜色。
想挑一个合适的颜色,可以网页搜索“RGB”,就会出来很多配色网站,从上面挑一个适合的颜色就好了!
颜色改好了。
——老师,一个花瓣需要由两条圆弧组成,你能告诉我两条弧怎么组合起来吗?
圆弧是圆的一部分,所以我们仍然用circle()函数,只不过里面加上第二个参数,表示画多少度的圆弧。
比如circle(100, 120)就表示半径为100,三分之一个圆的圆弧。
他开始自己试着画。过了一会儿再看他的进展时,已经画出来了。
这样一个花瓣只需要下面3行代码。中间的左转度数,也是他自己探索出来的。
t.circle(100, 80)
t.left(100)
t.circle(100,80)
不错嘛,小V同学!
——老师,我不太确定每个花瓣画完后应该转多少数。
跟你刚才画花盘一样,外面for循环多少次,与里面转的度数相乘,等于360就可以了。
——不老师,这个我知道,我的问题是花瓣画完回来之后,它并不是原来开始画这个花瓣时的角度,所以会出现问题。您看……
for i in range(18):
t.circle(100, 80)
t.left(100)
t.circle(100,80)
t.right(20)
要解决这个问题,我们得在每画完一个花瓣,转弯画下一个时,先恢复原来的朝向。
——啊,那我再左转100度,应该就行了。
对,可以!为了简便,也可以考虑用变量,将每次的初始朝向先保存下来h = t.heading()。再用t.setheading(h),恢复初始朝向,接着再做右转动作。像下面这样:
for i in range(18):
h = t.heading()
t.circle(100, 80)
t.left(100)
t.circle(100,80)
t.setheading(h)
#t.left(100)
t.right(20)
——Yeah,成功了!谢谢老师!
也给它填充上颜色吧!这个花瓣得先画好,再画之前的花盘,先画的会被后画的覆盖。
——好!我先给它加一个蓝色背景,再画花瓣,接着画花盘!
——再给它加上花枝吧。也得先画,嗯,我用跟花瓣一样的办法画叶子就可以了,改一个颜色!
好啊!你最后别忘了加上标题,用write()函数就可以啦!
于是,一份包含深情的母亲节礼物就成了!
—+—在公众号对话框中回复【母亲节】获得源代码—+—
参考资料:
【整理】Python Turtle常用函数
— OVER —
与非学堂
专注青少年信息技术教育,探讨少儿编程的教与学,交流技巧、分享资源
与非学堂小程序
蓝桥杯STEMA科技素养测试、Bebras测试、文化测试
一份自家广告,长期有效|咨询&合作
公众号对话框回复「HELP」更多精彩
喜欢就请「分享」「点赞」「在看」吧!