趣味编程,用Scratch和Python画勾股树 - 少儿编程网​www.kidscoding8.com

勾股树,又称为毕达哥拉斯树。它是由古希腊数学家毕达哥拉斯根据勾股定理画出的一个可以无限重复的图形,因为重复多次以后的形状像一棵树,因此得名。这种图形也被称为分形图,它们中的一个部分和它的整体或者其它部分都十分相似,分形体内任何一个相对独立的部分,在一定程度上都是整体的再现和缩影。这就是分形图的自相似的特性。

我国古代把直角三角形称为勾股形,并且直角边中较小者为勾,另一长直角边为股,斜边为弦,所以把这个定理称为勾股定理。公元前六世纪,古希腊数学家毕达哥拉斯证明了勾股定理,因而西方人都习惯地称这个定理为毕达哥拉斯定理。

勾股定理的定义是,在平面上的一个直角三角形中,两个直角边边长的平方加起来等于斜边长的平方。用数学语言表达为

用图形来表达如下图所示

以勾股定理图为基础,让两个较小的正方形按勾股定理继续“生长”,又能画出新一代的勾股定理图,如此一直画下去,最终得到一棵完全由勾股定理图组成的树状图形,称之为勾股树,再恰当不过。

在《Scratch趣味编程进阶》一书的第7章7.5节“勾股树”中,介绍了使用Scratch绘制勾股树分形图的方法:1. 先画出大正方形作为基本形状;

2. 再以大正方形的上边作为直角三角形的斜边,分别在三角形的两条直角边上画出两个小正方形;

3. 重复在每一个正方形的上边分别画出两个小正方形,最终得到一个树状的图形。

上图展示的是一棵勾股树的部分“生长”过程,最终图形如下图所示。

通过上面两个不同的勾股树分形图可以看到,它们的区别是最基础的勾股定理图中间的三角形,一个是普通的直角三角形,一个是等腰直角三角形。由此可知,通过改变勾股定理图中的直角三角形的两个锐角的大小,将能构造出不同形状的勾股树。

下面我们以前面所介绍的勾股定理图为基础,分别使用Scratch和Python来编写绘图程序,代码如下。

上面的Scratch程序使用到了递归方法来绘制勾股树分形图,对于递归编程不熟悉的朋友可以阅读《Scratch编程从入门到精通》一书,书中第5章“过程”中对函数(过程、自定义积木)和递归调用进行了详细的介绍。

上面的Python程序来自苏老师正在编写的一本Python图书《Python????》(书名待定),预计明年春天万事物生长之时出版发行,有兴趣的朋友可以留意一下。

剧透完毕,我们接着说勾股树。使用Scratch和Python绘制的勾股树分形图如下。

Python中内置了小海龟绘图库,提供了和Scratch类似的画笔功能,可以用来绘制平面图形。经过对比,Python小海龟的绘图速度远逊于Scratch,使用加速模式也没有Scratch的快,但是填充功能则是Scratch没有的。因此,用Python小海龟绘制的勾股树更漂亮一些。

勾股树、分形图等是非常有趣的话题,对此感兴趣的朋友可以阅读《Scratch趣味编程进阶》一书的第7章《神奇分形图》,其中介绍了几种常见的分形图的构造方法。会Python的朋友,可以尝试着将Scratch代码翻译为Python代码,感受一下使用Python的小海龟进行绘图的乐趣。

python3.4勾股定理代码_趣味编程,用Scratch和Python画勾股树相关推荐

  1. python3.4勾股定理代码_用于解答算法题目的Python3代码框架

    前言 最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字 ...

  2. python3.4勾股定理代码_使用有序数组来解决勾股定理(Python)

    好吧,在毕达哥拉斯定理中,您需要斜边是最长的长度.我能够对我的数组进行排序,它会自动将我的值从最小到最大排列.现在,问题是我该如何处理这些值?程序中的用户不知道什么是最长的长度(用户输入坐标),计算机 ...

  3. html樱花飘落代码_武大樱花又盛开,用python画一棵樱花树

    黑夜可能漫长,但总会迎来温暖的阳光,三月如期而至,武大的樱花又一次盛开.那么今天就一起来看看怎样在python中画一棵美丽的樱花树- 说到用python画画,那当然就是小乌龟Turtle库了,为啥是t ...

  4. 《小学生C++趣味编程》Scratch、C++

    第2课 春晓-2021.03.05 <小学生C++趣味编程>--C++.Scratch 第2课 春晓-2021.03.05 <小学生C++趣味编程>--C++.Scratch_ ...

  5. python趣味编程从入门到人工智能答案-趣味编程挑战:从Python入门到AI应用

    商品详情 书名:趣味编程挑战:从Python入门到AI应用 定价:69.0 ISBN:9787121363177 作者:孙勇 版次:第1版 出版时间:2020-04 内容提要: 本书是趣味编程的入门教 ...

  6. Scratch编程与数学之神奇的分型图-勾股树!

    注:这个程序脚本需要用到积木模块:动作.画笔.控制.事件.自制积木(适合有一定编程经验,且学过勾股定理,想编程进阶的孩子) 勾股树,又可以称为毕达哥拉斯树.它是古希腊数学家毕达哥拉斯根据勾股定理画出的 ...

  7. python3经典小程序代码_一个可以套路别人的python小程序实例代码

    python可以开发什么?谁有python小程序的源代码,...桌面程序,web都可以,还有比如现在讲的多的人工智能,神经网络源码可以去找一些开源代码,搜索一下,蛮多的. 分享python小程序代码练 ...

  8. python成人编程学习营_趣味编程营——Python开班啦!

    原标题:趣味编程营--Python开班啦! 3月9日,由菊园新区社区创新屋为青少年量身打造的"趣味编程营-python营"开班了.这是继scratch编程课之后,菊园新区管委会为辖 ...

  9. 新手学编程必会的100个代码_初学编程100个代码

    这是本文的目录 前言 1.for循环中的else条件 2.数字求和 3.随机数生成 4.将列表中的所有元素作为参数传递给函数 5.获取列表的所有中间元素 6.使用一行代码赋值多个变量 7.Python ...

最新文章

  1. Nature | 李海等揭示肠道菌群参与塑造B淋巴细胞抗原受体组库
  2. char str[]与char *str的区别
  3. 卷首寄语:我们的今天,明天--致所有战斗在一线的同行们
  4. 学生电脑哪个牌子好_柳州304不锈钢学生饭盒哪个牌子好_家典美日用品
  5. 如何用CMD开启3389与查看3389端口
  6. ubuntu下面使用stata进行线性回归
  7. python 时间日期处理
  8. C#8.0可空引用类型的使用注意要点 1
  9. 中国最为著名的古塔,你认识几座?
  10. Scrapy的安装介绍
  11. 【Spring MVC】 错误: 找不到或无法加载主类 解决方法
  12. SpringBoot: 注解@Autowired
  13. 巧妙布局的APP界面模板,让你的作品更有吸引力
  14. .Net(一):再识面向对象之C#学习总结
  15. 全国人民强烈反对手机单项收费!
  16. 小米便签源码分析——model包
  17. python爬虫框架教程_python爬虫框架有哪些
  18. 免费的文档翻译教程;免费将很长的文档英文翻译成中文
  19. Go语言: go-redis客户端通过MSet方法一次性批量写入多个key的值
  20. 笔记本锁定计算机怎么解锁,笔记本键盘被锁定了怎么办 笔记本解锁键盘的方法...

热门文章

  1. php rsa pss,RSA签名的PSS模式
  2. 基于QT(C++)实现(窗体)平台类对战游戏【100010513】
  3. 协方差公式性质证明过程_相关函数的协方差的性质
  4. 广告投放引擎哪些事儿
  5. js split分割url
  6. Echarts之水库水位
  7. 春风十里,不如淘宝遇见你——浸润深度学习的淘宝智能搜索
  8. python实现单纯形法迭代形式(待更新人工法+对偶)
  9. linux安装百度云盘
  10. MySQL中的哥哥表、妹妹字段,是什么鬼?