用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 / 4)

forward(l) # 画树枝

if n > 0:

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

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

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

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

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, n)

circle(2)

left(90)

pu()

backward(l)# 退回

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

ht() # 隐藏turtle

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

tracer(0, 0)

left(90) # 左转90度

pu() # 抬笔

backward(300) # 后退300

tree(13, 100) # 递归7层

done()

绘图如下:

第二种树:# 图二:

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()

绘图如下:

第三种树:# 图三:

import turtle

import random

from turtle import *

from time import sleep

t = turtle.Turtle()

w = turtle.Screen()

def tree(branchLen, t):

if branchLen > 3:

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()

def petal(m, t): # 树下花瓣

for i in range(m):

a = 200 - 400 * random.random()

b = 10 - 20 * random.random()

t.up()

t.forward(b)

t.left(90)

t.forward(a)

t.down()

t.color("lightcoral")

t.circle(1)

t.up()

t.backward(a)

t.right(90)

t.backward(b)

def main():

t = turtle.Turtle()

myWin = turtle.Screen()

getscreen().tracer(5, 0)

turtle.screensize(bg='wheat')

t.left(90)

t.up()

t.backward(150)

t.down()

t.color('sienna')

tree(60, t)

petal(100, t)

myWin.exitonclick()

main()

绘图如下:

python画三瓣树叶_用Python能画哪些树?相关推荐

  1. 用python画四瓣树叶_使用Python turtle画分形树叶图

    关于使用Python的turtle画树叶的代码. 感兴趣的可以自己了解一下分形树叶的数学几何原理--含概率的迭代函数系统.代码不难,关键是数学原理哦~还有,绘制过程有助于对代码和数学原理理解,大家动手 ...

  2. python画三瓣树叶_python教你画一棵树

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

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

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

  4. 用python画动态皮卡丘_利用Python绘制萌萌哒的皮卡丘

    开发工具 Python版本:3.6.4 相关模块: turtle模块. 环境搭建 安装Python并添加到环境变量即可. 在cmd窗口运行"pikachu.py"文件即可. 效果如 ...

  5. 详解python运行三种方式_详解python运行三种方式

    方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: $ p ...

  6. python画小猪佩奇视频_用 Python 20 秒画完小猪佩奇“社会人”!附效果视频+完整代码...

    原标题:用 Python 20 秒画完小猪佩奇"社会人"!附效果视频+完整代码 导读:今年社交平台上最火的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇. ...

  7. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  8. 88是python语言的整数类型_少儿Python编程_第三讲:常量变量和数据类型

    无论使用哪一种编程语言,甚至是学习数学.物理,都需要掌握常量.变量.表达式的概念和用法.本讲将带领读者进入编程世界,学习程序的基本元素. 3.1 基本数据类型 基本数据类型有数值型.布尔型和字符型.它 ...

  9. python打印自动换行如何解决_解决python DataFrame 打印结果不换行问题

    解决python DataFrame 打印结果不换行问题 如下所示: 加入代码: pd.set_option('display.width', 5000) 补充知识:Python 实现不换行打印字符的 ...

最新文章

  1. web中的cookies以及作用--web testing 学习笔记
  2. Linux_LEMP
  3. Intel Realsense D435 pyrealsense set_option() rs.option 可配置参数翻译
  4. CentOS7下Hive集群搭建
  5. 【收藏】在QGIS中导入GOOGLE、BING等地图和卫星影像(插件方式和XYZ方式)
  6. google四件套之Dagger2
  7. python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容
  8. Redis入门到入土教程_1
  9. ES6 Generator 函数
  10. Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结
  11. 《数据分析思维手册》和《数据分析师的职场真相》全集整理好啦,下载保存!...
  12. 计算机文化基础习题及答案
  13. HW-LCD-070 7寸液晶屏 数据手册
  14. 迪文屏与单片机c语言范例,STM32与迪文屏通讯 DMA模式
  15. word实用技巧--学一个记一个
  16. 展锐UDX710:TTS SDK移植
  17. 融云一站式「云市场」上线,携手生态伙伴,共建价值平台
  18. 使用canal1.1.5让MySQL5.7同步到ES7.x
  19. 安装VisualSVN server
  20. 通用nodejs正则表达式

热门文章

  1. nmn到底怎么样,nmn男性三高临床应用价值分享
  2. 大学里不该做的十件事
  3. 谷歌、苹果、亚马逊等大厂技术面试真题
  4. 瑞萨MCU单片机资料R5F100LEA RL78G13视频例程软件
  5. H5+CSS3移动商城界面.七天从零实战课程-信息_详情
  6. 怎样用万用表检查线路是短路还是接地?
  7. Apple Http Live Stream
  8. 爬虫第八式:破解百度翻译案例(特别详细) - JS逆向
  9. Adobe Audition介绍
  10. 2016年度最受欢迎中国开源软件评选 - 开源中国社区