海龟绘画分形五角星代码_从迭代到递归——海龟绘图案例分析(新课程共研共学专题分享第五期学习收获随笔)...

本次分享会聚焦海龟绘图,由梁见斌老师讲解从迭代到递归的原理,通过案例分析展示海龟绘图的魅力。内容包括:简单有趣的案例以体现计算思维,如何绘制正多边形、正多角星、内接正多角星,以及勾股树的动态画法。案例中,简单的代码变换能创造出美轮美奂的图案,展现了算法之美和数学之妙。
摘要由CSDN通过智能技术生成

      2020年7月26日晚19点,新课程“共研共学”专题分享会第五期如约在钉钉群进行,此次仍然由哈尔滨市高中信息技术教研、行走路上信息技术教育团队、信息技术教师命运共同体三个钉钉群同步联播,分享的主题是从迭代到递归——海龟绘图案例分析,主讲人是余姚市第二中学的梁见斌老师。

     说实话对于海龟绘图,我真的是一知半解,我之前学习Python课程基础语法部分内容时,没有turtle这部分内容,只是略微知道一点,之前只是看到有老师分享时,很炫很酷的画面,的确很吸引人呢~且看,今天梁老师的精彩分享吧!

45eafb47c9e9a6f14869a53b8e639497.png

低调的自我介绍~

      梁老师从自我介绍开始,虽然是物理学科转信息技术,但是超级厉害,自己开发和管理的“爱运动管理系统”,有上千个学校在使用,在CSDN网站的专栏有300多篇文章,CSDN那可是我一有问题就去搜索的地方呀!“Python算法之旅”公众号上也已经200多篇推送!

18e16449130e55838514bc6de96af4aa.gif

当前Python教程分类情况

      对于当前的Python教程分类,梁老师的总结是初级的入门课程比较多,高级的复杂的实际项目应用的有一少部分,而中级课程比较少,在学习了入门以后,能够看懂但不会用,不能熟练运用算法独立实际解决问题,因此教程有些断层,在这方面,要学习围棋界,面向各个阶段提供形式多样的普通和提高教程。编程和围棋一样,都是属于智力活动,而且编程还能够解决实际问题,实用性更强,如果加强编程的普及教育,为不同水平的编程爱好者,提供教学支撑,使它不至于成为少数有天赋的孩子的“玩具”,而是让每个孩子都从中找到属于自己的乐趣,体会算法之妙,利用编程来解决生活的一些简单问题,如果能够这样的话,局面会好更一些,不至于绝大多数孩子从“入门“到“放弃”,因此,特别关注中级教程的开发和研究,争取创作一些适合中学生或者其他已经掌握了基本语法的编程爱好者,做一些基本算法和简单项目实践,为向上攀爬过程中提供一些支撑和动力。这次分享的初衷就是来源于此,本打算分析一下动态勾股树的原理,但在整理的过程中发现海龟绘图运用非常广泛,数学分形图也非常的漂亮,完全可以做成一个专题系列讲座,把常见的难度适中的海龟绘图的案例,按不同的算法进行分类,刚好就是一个中级教程。

705ce7ab8da6a2f1b71d1e8841f416db.png

最好的学习方法:查阅官方文档

     梁老师介绍学习Python语言标准库或者第三方库最好的方法就是查阅官方文档,之前我都是东看一下西看一下的,还真没有查阅过官方文档,按老师分享的网址,我也找到了官方文档啦~然后按照文档上的代码,演练了一遍,效果还不错哈~

77f00810780728f99e96fa9988128437.png

案例,案例~

案例选择原则

    既简单有趣,又能体现计算思维。

    不好的案例:图案过于复杂、繁琐,考查作者的美术功底,而非计算思维。

    好的案例:图案简单明晰,富于变化,能充分考查作者的计算思维,并体现数学之美、算法之美。

具体案例来啦~

4fa636c3d0cd9f0e5c77dba716a3bf82.png 4dda5b18cc63e4f8d6895f224e61b266.png 7bc443387ec250919f820499005eeabf.png

     我用梁老师的代码,体验了一下,变换角度,就会形成不同的图案,真的是太神奇了!

     这只是一重循环,如果再加一重循环,可以对颜色进行控制。真是美轮美奂!

b49b715e97c533505af7e35c974dc57c.png

      我在操作的时候,女儿从电脑旁路过,大声感叹,太漂亮了!然后一再跟我说,等有时间,一定要让我教教她,嗯,这个程序序列,够吸晴的,哈哈~

正多边形、正多角星、内接正多角星

     运用circle方法,绘制内接正多边形。

     正多角星:找出数学原理、通用的方法。画正五角星为例,由正五边形,延长各边后,画外面的各个角,偏转的角度a=360//n。

     内接正多角星:为了解决越来越大的问题,借鉴circle方法,画一个内接正多角星。

    遇到问题,第一反应不是去百度,而是自己思索能不能做出来,可能会慢点,但对于原理印象深刻。

dc0bd3869d78e5cff4e97fd87b31372d.png

图 / 内接正多角星

       我也想画一个漂亮的内接正多角星,按照梁老师的代码提示,进行实践操作,但并不怎么成功哈,看看我这个失败案例的样子~

82e599b831170f99a1cb5ac5d5a705fa.png

图 / 没成功的内接正多角星~

      虽然不怎么成功,但是能到这一步,也是曲折的呢,先是能画出来五角星画不出来圆,然后是能画出来圆却画不出五角星就结束运行了,经过一番调试,才到现在这个样子。和梁老师的图进行比较,我画的第一个红色五角星的起笔位置不对,我明明也是回到原点的,顶点的位置有些错乱,不在同一个点上,因为位置不对,所以没有内接到圆内……果然,充分暴露了没有认真学习过turtle的真相~

勾股树

       接下来梁老师介绍了勾股树的画法,确定底边,还原入口位置和方向作为基本的原则,为大家先展示了静态的勾股树,然后是动态的勾股树,从左下角开始画起,到从右下角开始画,先画左子树,再画右子树,等三种不同的画法。方法虽不同,但是都达到了我们绘出勾股树的最终目的。

      通过以上的案例,梁老师总结到海龟绘图不仅仅适合用来引导孩子学习编程,也适合将抽象的算法思维形象化。

5cbce3d275d01890fe4dd65cb30f6c92.png

图 / 勾股树

      勾股树很漂亮,不过,我现在还不能自己画出来哈,所以放一张梁老师课堂上展示的截图,一起来欣赏,期待有一天,我也能画出来这么漂亮的树~

705ce7ab8da6a2f1b71d1e8841f416db.png

      这次分享的内容,我仍然用幕布做了笔记,记的过程实际上是对思维的一种训练,不同于以往手写的笔记,只要一直记下去就可以了,不用太细分层次,但这里不一样,有着严格的层次划分,也许我记的还不能完全表述老师所讲的观点和内容,但是,相信在这样一个思考锻炼的过程中,会逐步提高的,So,继续努力吧~

844ffa6c9379adc392e53c0882b872d6.png 84ad56873a6e12f32c6df634f049495b.png

扫码

关注我~

c76eb6d21b731dd535d583f8a1ff3951.png

其静也专

让我们一起来学习吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值