Turtle绘图

Turtle模块提供了在二维平面上移动的环境。

Turtle可以实现位置、航向和各种可能的状态和动作。

  1. import turtle as tu
  2. roo = tu.Turtle() # 创建对象
  3. wn = tu.Screen() # 屏幕对象
  4. wn.bgcolor("black") # 屏幕背景
  5. wn.title("分形树")
  6. roo.left(90) # 移动
  7. roo.speed(20) # 速度
  8. python答疑 咨询 学习交流群2660193417###
  9. def draw(l): # 以长度'l'作为参数的递归函数
  10. if l < 10:
  11. return
  12. else:
  13. roo.pensize(2) # 设置画笔大小
  14. roo.pencolor("yellow") # 画笔颜色
  15. roo.forward(l) # 朝向
  16. roo.left(30) # 移动
  17. draw(3 * l / 4) # 绘制
  18. roo.right(60) # 移动
  19. draw(3 * l / 4) # 绘制
  20. roo.left(30) # 移动
  21. roo.pensize(2)
  22. roo.backward(l) # 返回初始位置
  23. draw(20) # 绘制20次
  24. roo.right(90)
  25. roo.speed(2000)
  26. python答疑 咨询 学习交流群2660193417###
  27. # recursion
  28. def draw(l):
  29. if (l < 10):
  30. return
  31. else:
  32. roo.pensize(2)
  33. roo.pencolor("magenta") # magenta
  34. roo.forward(l)
  35. roo.left(30)
  36. draw(3 * l / 4)
  37. roo.right(60)
  38. draw(3 * l / 4)
  39. roo.left(30)
  40. roo.pensize(2)
  41. roo.backward(l)
  42. draw(20)
  43. roo.left(270)
  44. roo.speed(2000)
  45. # recursion
  46. def draw(l):
  47. if (l < 10):
  48. return
  49. else:
  50. roo.pensize(2)
  51. roo.pencolor("red") # red
  52. roo.forward(l)
  53. roo.left(30)
  54. draw(3 * l / 4)
  55. roo.right(60)
  56. draw(3 * l / 4)
  57. roo.left(30)
  58. roo.pensize(2)
  59. roo.backward(l)
  60. draw(20)
  61. roo.right(90)
  62. roo.speed(2000)
  63. # recursion
  64. def draw(l):
  65. if (l < 10):
  66. return
  67. else:
  68. roo.pensize(2)
  69. roo.pencolor('#FFF8DC') # white
  70. roo.forward(l)
  71. roo.left(30)
  72. draw(3 * l / 4)
  73. roo.right(60)
  74. draw(3 * l / 4)
  75. roo.left(30)
  76. roo.pensize(2)
  77. roo.backward(l)
  78. draw(20)
  79. ########################################################
  80. python答疑 咨询 学习交流群2660193417###
  81. def draw(l):
  82. if (l < 10):
  83. return
  84. else:
  85. roo.pensize(3)
  86. roo.pencolor("lightgreen") # lightgreen
  87. roo.forward(l)
  88. roo.left(30)
  89. draw(4 * l / 5)
  90. roo.right(60)
  91. draw(4 * l / 5)
  92. roo.left(30)
  93. roo.pensize(3)
  94. roo.backward(l)
  95. draw(40)
  96. roo.right(90)
  97. roo.speed(2000)
  98. # recursion
  99. def draw(l):
  100. if (l < 10):
  101. return
  102. else:
  103. roo.pensize(3)
  104. roo.pencolor("red") # red
  105. roo.forward(l)
  106. roo.left(30)
  107. draw(4 * l / 5)
  108. roo.right(60)
  109. draw(4 * l / 5)
  110. roo.left(30)
  111. roo.pensize(3)
  112. roo.backward(l)
  113. draw(40)
  114. roo.left(270)
  115. roo.speed(2000)
  116. # recursion
  117. def draw(l):
  118. if (l < 10):
  119. return
  120. else:
  121. roo.pensize(3)
  122. roo.pencolor("yellow") # yellow
  123. roo.forward(l)
  124. roo.left(30)
  125. draw(4 * l / 5)
  126. roo.right(60)
  127. draw(4 * l / 5)
  128. roo.left(30)
  129. roo.pensize(3)
  130. roo.backward(l)
  131. draw(40)
  132. roo.right(90)
  133. roo.speed(2000)
  134. # recursion
  135. def draw(l):
  136. if (l < 10):
  137. return
  138. else:
  139. roo.pensize(3)
  140. roo.pencolor('#FFF8DC') # white
  141. roo.forward(l)
  142. roo.left(30)
  143. draw(4 * l / 5)
  144. roo.right(60)
  145. draw(4 * l / 5)
  146. roo.left(30)
  147. roo.pensize(3)
  148. roo.backward(l)
  149. draw(40)
  150. ########################################################
  151. def draw(l):
  152. if (l < 10):
  153. return
  154. else:
  155. roo.pensize(2)
  156. roo.pencolor("cyan") # cyan
  157. roo.forward(l)
  158. roo.left(30)
  159. draw(6 * l / 7)
  160. roo.right(60)
  161. draw(6 * l / 7)
  162. roo.left(30)
  163. roo.pensize(2)
  164. roo.backward(l)
  165. draw(60)
  166. roo.right(90)
  167. roo.speed(2000)
  168. # recursion
  169. def draw(l):
  170. if (l < 10):
  171. return
  172. else:
  173. roo.pensize(2)
  174. roo.pencolor("yellow") # yellow
  175. roo.forward(l)
  176. roo.left(30)
  177. draw(6 * l / 7)
  178. roo.right(60)
  179. draw(6 * l / 7)
  180. roo.left(30)
  181. roo.pensize(2)
  182. roo.backward(l)
  183. draw(60)
  184. roo.left(270)
  185. roo.speed(2000)
  186. # recursion
  187. def draw(l):
  188. if (l < 10):
  189. return
  190. else:
  191. roo.pensize(2)
  192. roo.pencolor("magenta") # magenta
  193. roo.forward(l)
  194. roo.left(30)
  195. draw(6 * l / 7)
  196. roo.right(60)
  197. draw(6 * l / 7)
  198. roo.left(30)
  199. roo.pensize(2)
  200. roo.backward(l)
  201. draw(60)
  202. roo.right(90)
  203. roo.speed(2000)
  204. # recursion
  205. def draw(l):
  206. if (l < 10):
  207. return
  208. else:
  209. roo.pensize(2)
  210. roo.pencolor('#FFF8DC') # white
  211. roo.forward(l)
  212. roo.left(30)
  213. draw(6 * l / 7)
  214. roo.right(60)
  215. draw(6 * l / 7)
  216. roo.left(30)
  217. roo.pensize(2)
  218. roo.backward(l)
  219. draw(60)
  220. wn.exitonclick()

绘制时间较长,结果如下,挺好看的。

Turtle绘图——python简单上手小案例的更多相关文章

  1. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import time start = time.time() ...

  2. SSM-SpringMVC-02:SpringMVC最简单的小案例

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 咱们这个案例做什么? 就是用处理器代替Servlet处理请求 开发步骤: 1.引入jar包 <!--单 ...

  3. Python的应用小案例

    1.python统计文本中每个单词出现的次数: #coding=utf-8__author__ = 'zcg' import collectionsimport os with open('abc.t ...

  4. Python Django 实用小案例2

    动态导入模块 Django返回序列化数据  动态导入模块 在Django里面,经常会看到一些方法或者类是动态导入,尤其是以settings文件为代表,经常把一些类放在里面动态调配,比如随便拿Djang ...

  5. python 客户端点对点通信小案例

    点对点通讯分为客户端和服务器,多个客户端通过服务器进行信息的交流 服务器端代码  service端 #!/usr/bin/env python # -*- coding:utf-8 -*- impor ...

  6. 6.Python使用Pandas小案例

    1.使用以下命令引入Pandas和xlrd,引入成功后在pycharm的setting导入即可使用(pip3是由于个人python版本为3.6)==在dos命令行输入以下信息 pip3 install ...

  7. 15.Selenium+Python滑动解锁小案例

    1.代码实现 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChai ...

  8. python 之 Django 小案例

    一, F  Q # F 使用查询条件的值 # # from django.db.models import F # models.Tb1.objects.update(num=F('num')+1) ...

  9. Python简单基础小程序

    1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j += 1 print(j,'*',i, ...

随机推荐

  1. JavaScript学习高级2

    ## DOM:     * 概念: Document Object Model 文档对象模型         * 将标记语言文档的各个组成部分,封装为对象.可以使用这些对象,对标记语言文档进行CRUD ...

  2. 2022.02.21 SA

    2022.02.21 SA 当我年少轻狂时,我曾拥有自由,但我并不明白它的意义.我曾拥有时间,但我没有意识到它的珍贵.我曾拥有爱,但我从未用心去体会.数十年的时间考验后,我终于理解了三者的真谛. 我已 ...

  3. svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer

    基于Svelte3.x开发pc网页版自定义弹窗组件svelteLayer. svelte-layer:基于svelte.js轻量级多功能pc桌面端对话框组件.支持多种弹窗类型.30+参数随意组合配置, ...

  4. python学习-Day29

    目录 今日内容详细 反射实际案例 面向对象的双下方法 __ str __ __ del __ __ getattr __ __ setattr __ __ call __ __ enter __ __ ...

  5. XCTF练习题---MISC---倒立屋

    XCTF练习题---MISC---倒立屋 flag:flag{9102_cCsI} 解题步骤: 1.观察题目,下载附件 2.打开发现是个倒立的屋子,并没有发现啥东西,拿StegSolve看看 3.查了 ...

  6. ZooKeeper 到底解决了什么问题?

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 目标 ZooKeeper 很流行,有个基本的疑问: Zo ...

  7. 【mq】从零开始实现 mq-10-消费者拉取消息回执 pull message ack

    前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...

  8. Vue组件之间通信

    vue组件传值有以下几种情况: 父组件向子组件传值.子组件向父组件传值.兄弟组件之间传值等 一.父组件向子组件传值: 传值方式: props <father> // 动态传递值 <s ...

  9. SQL查询与SQL优化[姊妹篇.第四弹]

    在上一篇文章中,我们一起了解了关系模型与关系运算相关的知识,接下来我们一起谈谈,面对复杂的关系数据,我们如何来优化,SQL如何玩转更优呢? 在上一篇中抛出了4个关于优化方面的问题: 1.返回表中0.0 ...

  10. 解决 youtube 片尾内容被遮挡

    参考: https://www.pcdvd.com.tw/showthread.php?t=1137333 在 ublock 的自定义静态规则中加上这句话 www.youtube.com##.ytp- ...