小V的母亲节礼物揭秘,Python Turtle海龟绘图

​一份问卷调查,期待听到您的声音


 

母亲节,小V同学送给他妈妈的礼物成了全场最秀!鼓掌

 

小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()函数就可以啦!

 

 

于是,一份包含深情的母亲节礼物就成了!

 

充满艺术气质的极客小V同学

 

—+—在公众号对话框中回复【母亲节】获得源代码—+—

 

参考资料:

【整理】Python Turtle常用函数

— OVER —

 

 

与非学堂

专注青少年信息技术教育,探讨少儿编程的教与学,交流技巧、分享资源

 

 

与非学堂小程序

蓝桥杯STEMA科技素养测试、Bebras测试、文化测试

 

一份自家广告,长期有效|咨询&合作


 

公众号对话框回复「HELP」更多精彩

喜欢就请「分享「点赞「在看」吧!

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值