Tree

海龟绘图turtle

在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。

海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能。

Python脚本:

from turtle import *

from random import *

from math import *

def tree(n,l):

pd()#下笔

#阴影效果

t = cos(radians(heading()+45))/8+0.25

pencolor(t,t,t)

pensize(n/3)

forward(l)#画树枝

if n>0:

b = random()*15+10 #右分支偏转角度

c = random()*15+10 #左分支偏转角度

d = l*(random()*0.25+0.7) #下一个分支的长度

#右转一定角度,画右分支

right(b)

tree(n-1,d)

#左转一定角度,画左分支

left(b+c)

tree(n-1,d)

#转回来

right(c)

else:

#画叶子

right(90)

n=cos(radians(heading()-45))/4+0.5

pencolor(n,n*0.8,n*0.8)

circle(3)

left(90)

#添加0.3倍的飘落叶子

if(random()>0.7):

pu()

#飘落

t = heading()

an = -40 +random()*40

setheading(an)

dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)

forward(dis)

setheading(t)

#画叶子

pd()

right(90)

n = cos(radians(heading()-45))/4+0.5

pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)

circle(2)

left(90)

pu()

#返回

t=heading()

setheading(an)

backward(dis)

setheading(t)

pu()

backward(l)#退回

bgcolor(0.5,0.5,0.5)#背景色

ht()#隐藏turtle

speed(0)#速度 1-10渐进,0 最快

tracer(0,0)

pu()#抬笔

backward(100)

left(90)#左转90度

pu()#抬笔

backward(300)#后退300

tree(12,100)#递归7层

done()

运行效果

python画-如何用Python画一棵漂亮的树相关推荐

  1. python画-如何用Python画各种著名数学图案 | 附图+代码

    原标题:如何用Python画各种著名数学图案 | 附图+代码 用Python绘制著名的数学图片或动画,展示数学中的算法魅力. Mandelbrot 集 代码:46 lines (34 sloc) 1. ...

  2. 用python画猫咪怎么画-如何用Python画一只机器猫?

    原标题:如何用Python画一只机器猫? 本文经授权转自公众号异步图书 如若转载请联系原公众号 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次 ...

  3. python udp_如何用python方法检测UDP端口

    如何用python方法检测UDP端口,首先要了解什么是UDP端口及作用.网上搜索了一圈后,我得到的个人理解是:UDP端口是含有网络服务必须的源端口和目的端口信息,用以建立和实现网络传输服务. 那么如何 ...

  4. python数据分析——如何用python连接远程数据库

    本文将以SQLite.MySQL,PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作. SQLite SQLite可能是与Python连接的最方便的数据库,因为我们不需要安 ...

  5. 【Python】如何用Python发送SMTP邮件

    [背景] 自动发送邮件通知是流成自动化系统必备的功能,今天介绍如何用Python实现. [代码] 这里以163邮箱为例 def send_smtp_mail(host="smtp.163.c ...

  6. python语言是 创造的_慢步python,如何用python语言创造出一个真正的独立exe程序?...

    我们学习编程,终极目标还是编写一个独立的应用程序.独立的应用程序应该像QQ,微信一样不依靠其他程序运行,只有平台支持,就可以运行.从这个意义上说,所用应用程序都是基于操作系统运行的. 那么如何用pyt ...

  7. python workflow_如何用 Python 写 Alfred Workflow

    原标题:如何用 Python 写 Alfred Workflow 用 Mac 的同学应该都听过 Alfred,号称效率神器.但是,你有没有想过可以用 Python 自己写一个 Workflow 呢? ...

  8. 人生苦短我用python壁纸_人生苦短,我用 Python——我如何用 Python 助力工作和生活?...

    在生活和工作中,往往充斥着一些枯燥且乏味的事情.所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势. 本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的 ...

  9. 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...

  10. chatgpt赋能python:如何用Python计算球的表面积和体积

    如何用Python计算球的表面积和体积 球体是数学中的常见图形,计算球的表面积和体积是科学研究和应用中的重要问题.Python作为一种高效.易学.广泛使用的编程语言,可以很方便地用于计算球的表面积和体 ...

最新文章

  1. SAP MM 由于没有维护Plant的Address信息导致不能在ME51N和ME21N界面里输入工厂代码
  2. Linux不停往外发包
  3. unity3d技术摄像头跟随_堪比灯厂,新时代智能安全灯光技术,体验大众迈腾GTE IQ.LIGHT...
  4. CSS3属性之background
  5. 文献记录(part16)--Learning Bayesian Network Classifiers: Searching in a Space of Partially ...
  6. EL在java里的意义
  7. Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想
  8. 20款漂亮的长阴影 LOGO 设计作品【附免费生成工具】
  9. Duilib编辑框Edit输入完自动跳到下一个编辑框
  10. 接口测试和性能测试的区别
  11. IDEA Properties 文件乱码
  12. 软件测试用mac还是windows,Boot Camp还是虚拟机?Mac+Win实测
  13. 一道看似简单的sql需求却难倒各路高手 - 你也来挑战下吗?
  14. 《OpenDRIVE1.6规格文档》1
  15. MyBatis官方文档
  16. html颜色混搭的插件,Color by Fardos,网页取色配色插件,查找近似颜色,提供渐变配色...
  17. 计算机应对青少年素质培养作文,2020年关于素质修养的作文5篇
  18. html怎么叠加透明图片,css – 您可以在图片上叠加透明div
  19. 航空研发软件移机时使用符号连接节省Windows系统C盘空间占用
  20. 【Arduino】8位LED数码管(3461BS)

热门文章

  1. centos7 docker 安装 otter 注意事项
  2. 0428(字典,列表,循环)
  3. Sql server中如何将表A和表B的数据合并(乘积方式)
  4. Access denied for user 'root'@'localhost' (using password: YES)的解决
  5. Zookeeper 的学习与运用
  6. Delphi (Library Path Browsing Path)
  7. 【English】哈佛大学用这12张图,让你远离负能量
  8. C# .net中json字符串和对象之间的转化方法
  9. 【★】Web精彩实战之智能迷宫
  10. 打开Excel文件并插入图片