python 龙型图(Dragon Curve)

代码

用turtle结合递归实现数学小游戏龙型图

#用turtle绘制龙形图
import turtle#绘制龙形图的函数
def Dragon(n,length,angle):#功能名和输入的参数定义if n==0:turtle.forward(length)#绘制一条长度为length的线段else:Dragon(n-1,length,90)#90:线段间角度turtle.left(angle)#转一个角度 90 向左 -90向右Dragon(n-1,length,-90)#-90:线段间角度#turtle环境设置
turtle.Screen().clear()
turtle.speed(0)
turtle.pensize(2)#绘制开始点设置
turtle.penup()
turtle.goto(60,100)
turtle.pendown()#运行时参数设置
n=2#迭代次数
length=35#线段长度
angle=90#旋转角度#开始迭代
Dragon(n,length,angle)
turtle.done()

代码解释

前四次迭代如图所示,后一次迭代基于前一次。

新迭代生成方式:在箭头交界处旋转,旋转方向和旋转角度随意,但要保证每次旋转的一致性及龙型图的基本性质(线段相互垂直),图示每次均向左旋转90°。

我们规定:

前一个迭代的图:Dragon(n-1)

连接时候的旋转角度:angle

所以再看代码,只需要先让函数生成一个Dragon(n-1)图(逆时针),再将画笔旋转angle°,再生成同样一个Dragon(n-1)图(顺时针)即可完成“在箭头交界处旋转”的操作绘制完整图像。

Dragon(n-1,length,90)#生成一个A图,逆时针
turtle.left(angle)#向左转一个角度
Dragon(n-1,length,-90)#生成同样一个A图,顺时针,也就是颠倒起点和终点画,目的是为了完成箭头交界处旋转的操作

python 龙型图(Dragon Curve)相关推荐

  1. python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力

    Python的GUI简易界面设计案例 测测你的反应力      作为初次接触代码编程的你,是不是觉得Python程序除了"码"就是"字"即使是有趣的程序除了烧烧 ...

  2. Python 读取图,旋转,缩放(PIL, matplotlib)

    Python 读取图,旋转,缩放(PIL, matplotlib) 2017-05-03 12:54 1133人阅读 评论(0) 收藏 举报  分类: python(20)  版权声明:本文为博主原创 ...

  3. 分形之龙形曲线(Dragon Curve)

    龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名. 一种简单的生成分形龙的方式是:拿着一条细长的纸带,把它朝下的一头拿上来,与上面的一头并到一起.用 ...

  4. python画气泡图_​用Python把图做的好看点:用Matplotlib画个好看的气泡图

    我们继续来把简单的图形丢到极坐标,这次是气泡图和柱状图,临摹的对象是澎湃美数课 这个图看起来很好看,原理其实很简单,把柱状图和气泡图从笛卡尔坐标系中转移到极坐标系中来就OK 我们开始本次的临摹吧 本期 ...

  5. python 三维图直方图_Python | 阶梯直方图

    python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...

  6. python matplotlib图中插入表格

    python matplotlib图中插入表格 解决问题 示例代码 结果 解决问题 在matplotlib画的图里插入表格数据.使用到pyplot和gridspec函数. 示例代码 #导入库 impo ...

  7. python画简便的图-最适合小白学的花色玩Python折线图|画个天气预报

    原标题:最适合小白学的花色玩Python折线图|画个天气预报 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...

  8. Python线图点图--matplotlib.pyplot.plot

    参考视频:Python线图点图--15分钟详解matplotlib.pyplot.plot #011_哔哩哔哩_bilibili 一.绘图基础 #导入画图包,以及数据包 import matplotl ...

  9. Python动态图见得多了?Excel:亦可赛艇!我可是身经百战了

    作者:Ryoko量子 来源:凹凸数据 朋友圈又看到 Python 广告推送了,什么"你还在用 Excel 加班啊"."我一进去就看见 Python 在打 Excel 啊& ...

最新文章

  1. 「无心插柳柳成荫」的乔姆斯基 | 追溯 AI 大师系列
  2. ActiveMQ网络连接
  3. 2015年 六·一 儿童节——我
  4. rostcm6情感分析案例分析_周小鹏分析情感案例——你愿意嫁给一个离过婚带孩子男人吗?...
  5. androidx.preference.PreferenceScreen 去除左边空白
  6. SVN 如何把一个项目的版本回退到指定版本
  7. Java题 细胞分裂
  8. 如何利用花生壳动态域名解析服务搭建http服务。
  9. 硬盘分区总结(小东子)
  10. win10截图相关教程
  11. 有哪些在成都开了 20 年以上的味道不错的小饭馆
  12. 英飞凌-AURIX-TC3XX 片上总线通信架构
  13. 核磁谱图分析步骤_测试干货|核磁共振好基友MestReNova—手把手教你做出一张核磁谱图...
  14. RocketMQ重试策略及与Springboot整合
  15. 8大模块、40个思维模型,打破思维桎梏,满足你工作不同阶段、场景的思维需求,赶紧收藏慢慢学
  16. HBase系列(一):HBase表结构及数据模型的理解
  17. 移动安全测试框架MobSF(二):动态分析
  18. SPI串行外围设备接口
  19. android抖音自动刷新,Android SwipeRefreshLayout仿抖音app静态刷新
  20. 腾讯地图—WebService API定位的使用

热门文章

  1. C++使用socket的api创建简单服务器
  2. UGC用户原创内容管理
  3. Firefox 火狐浏览器升级版本后鼠标右键复制链接对应键盘快捷键的更换插件
  4. ae教程 (三)三维空间合成(三)
  5. 2021ArchLinux安装图文教程
  6. 【ftp】ftp服务器无法登录的解决办法
  7. 【如何制作电子书】云展网教程 | 默认显示模式:翻页、单页、滑页
  8. 双侧检验的p值和单侧检验_单侧检验和双侧检验单侧检验和双侧检验.ppt
  9. 【聆听】泰戈尔诗集(六)
  10. 《东周列国志》第二十七回 骊姬巧计杀申生 献公临终嘱荀息