最近不少读者对 python 的 turtle 库比较感兴趣,用python画一朵玫瑰给你,之前也写了一篇文章讲过如何画一朵玫瑰花。今天在知乎上找了一个用 turtle 画树的 python 程序,一起来看看。

其实这种程序,主要了解下大概思路即可,有兴趣的可以去熟悉下 turtle 中每个函数的使用方法和作用,我在画玫瑰花那篇文章中也有过一些介绍,大家可以对照参考下。

我先说下画这棵树的大致思路,首先这幅画可以分两大部分,一部分是树,一部分是地上的花瓣,重点是怎么画树。树又可以分为树叶和树枝,每个树枝最多分两个树杈,树叶有两种颜色。

树枝的粗细我们可以通过画笔的大小来控制,树叶的颜色我们可以使用画笔的颜色来控制,这样一来,我们只需要确认好每个位置画笔的大小和颜色即可。

不同的树枝或者不同的树叶都可以由相同的方法来实现,只是位置不一样而已,所以在程序上我们使用递归来实现,通过递归生成大量的树枝和树叶,每次递归都会在不同位置生成树枝和树叶。

树下的花瓣就容易了,直接一个循环就能搞定,每次循环画笔上下左右都随机移动一些距离即可。

下面贴出画树枝树叶的代码,大家可以对照上面提供的思路看看,完整的代码还请在公众号【谭小谭】后台回复关键字 【树】 获取。

#python 画树的主要实现方法

#branchLen 表示树枝的长度,t 表示turtle对象

def tree(branchLen, t):

if branchLen > 2:

if 8 <= branchLen <= 12:

if random.randint(0, 2) == 0:

t.color('snow')

else:

t.color('lightcoral')

t.pensize(branchLen / 3)

elif branchLen < 8:

if random.randint(0, 1) == 0:

t.color('snow')

else:

t.color('lightcoral')

t.pensize(branchLen / 2)

else:

t.color('sienna')

t.pensize(branchLen / 10)

t.forward(branchLen)

a = 1.5 * random.random()

t.right(20*a)

b = 1.5 * random.random()

tree(branchLen-10*b, t)

t.left(40*a)

tree(branchLen-10*b, t)

t.right(20*a)

t.up()

t.backward(branchLen)

t.down()

python画三瓣树叶_python教你画一棵树相关推荐

  1. python画三瓣树叶_Python——画一棵漂亮的樱花树

    最近用Python(大多是turtle库)绘制的樱花树有点火,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 (一) 动态生成樱花 效 ...

  2. python画三瓣树叶_用Python能画哪些树?

    用Python画出的三种树: 第一种树:# 图一: from turtle import * from random import * from math import * def tree(n, l ...

  3. python画树干_python教你画一棵树

    最近不少读者对 python 的 turtle 库比较感兴趣, 用python画一朵玫瑰给你 ,之前也写了一篇文章讲过如何画一朵玫瑰花.今天在知乎上找了一个用 turtle 画树的 python 程序 ...

  4. python画一片树叶_python画一片绿叶给你

    怎么用 turtle 画一个 π 字,于是我顺手到网上大致搜了下,发现网上没有画这个 π 字的,接着又用谷歌加英文搜索了下,还是没找到现成的答案. 不过通过这次搜索意外发现了一个有趣的网站,网站上有大 ...

  5. 用python画树_Python+Turtle动态绘制一棵树实例分享

    本文实例主要是对turtle的使用,实现Python+turtle动态绘制一棵树的实例,具体代码: # drawtree.py from turtle import Turtle, mainloop ...

  6. python科赫曲线树叶_python画图——雪花(科赫曲线)

    科赫曲线是一种分形,其形态非常像雪花,因此又被称作科赫雪花.雪花曲线. 下面是用python的turtle包让我们来实时画一个 import turtle def koch(t,n): #定义一个函数 ...

  7. python画一棵树源代码_Python+Turtle动态绘制一棵树实例分享

    本文实例主要是对turtle的使用,实现Python+turtle动态绘制一棵树的实例,具体代码: # drawtree.py from turtle import Turtle, mainloop ...

  8. tableau实战系列(三十五)-教你画个不一样的圆角条形图

    前言 条形图数据分析的经常用到的图形展示方式之一,今天教大家画个有点不太一样的条形图-圆角条形图,一起来学习吧! 具体步骤如下: 1 连接数据源 打开 Tableau Desktop,连接 示例-超市 ...

  9. python求三个数平均值_python求三个数平均值

    本文收集整理关于python求三个数平均值的相关议题,使用内容导航快速到达. 内容导航: Q1:利用python3.x计算任意数据平均值 l=[1,2,3]def ave(a):print(sum(a ...

最新文章

  1. Hashing散列注意事项
  2. Git(一)之基本操作详解
  3. 从屌丝毕业生到三次优秀员工(腾讯三年工作感悟)
  4. nyoj A+B Problem IV
  5. oracle 中序号的一种生成方式
  6. centos下svn与mysql_centos下SVN搭建
  7. AppleScript 以管理员身份运行程序
  8. lstm模型java实现_如何在Keras中构建LSTM分类器模型
  9. MFC 设置应用程序开机启动并设置运行路径
  10. java 队列_java自学之路-08双端队列
  11. jmeter-模拟弱网测试
  12. 湖州市技师学院的计算机,湖州技师学院
  13. ajax post forbidden,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
  14. HTML表格简单的创建与制作
  15. proteus三输入与非门名字_Proteus所有元件名称
  16. 永磁同步电机力矩控制(三):关于电机位置信号
  17. 系统项目报表导出功能开发
  18. mac 系统安装总结 二,dmg 文件安装
  19. idea的一揽子工程
  20. ET框架-10 ET框架事件系统

热门文章

  1. 超声波塑料焊接机电箱发生器设计
  2. GIF动态图怎么制作?试试这些简单方便的制作方法
  3. 华为虚拟机CentOS7.3 ORACLE 19C RAC搭建全过程
  4. 超级全的免费杂志索取汇总~ 希望加精 不收集怎知不容易啊 奉献出来
  5. Linux群控源码,基于嵌入式Linux无线群控系统的研究与实现
  6. maven中央仓库找不到jconsole-1.8.0.jar和tools-1.8.0.jar包
  7. Mongodb 索引 对查询结果的排序
  8. oracle 导出secquence,oracle等待事件7——事務上的等待事件
  9. SQLite DBRecovery 恢复引擎实现微信等一些手机聊天工具删除记录的快速恢复
  10. node 获取文件编码,批量转换文件编码