Python Turtle库画树
一、树形1
代码:
from turtle import *
from random import *
from math import *def tree(n, l):pd() # 下笔# 阴影效果t = cos(radians(heading() + 45)) / 8 + 0.25pencolor(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.5pencolor(n, n*0.8, n*0.8)circle(3)left(90)# 添加0.3倍的飘落叶子if(random() > 0.7):pu()# 飘落t = heading()an = -40 + random()*40setheading(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.5pencolor(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()
二、树形2
效果图:
代码:
from turtle import *# 设置色彩模式是RGB:
colormode(255)lt(90)lv = 14
l = 120
s = 45width(lv)# 初始化RGB颜色:
r = 0
g = 0
b = 0
pencolor(r, g, b)penup()
bk(l)
pendown()
fd(l)def draw_tree(l, level):global r, g, b# save the current pen widthw = width()# narrow the pen widthwidth(w * 3.0 / 4.0)# set color:r = r + 1g = g + 2b = b + 3pencolor(r % 200, g % 200, b % 200)l = 3.0 / 4.0 * llt(s)fd(l)if level < lv:draw_tree(l, level + 1)bk(l)rt(2 * s)fd(l)if level < lv:draw_tree(l, level + 1)bk(l)lt(s)# restore the previous pen widthwidth(w)speed("fastest")draw_tree(l, 4)done()
三、树形3
效果图:
代码:
import turtle
import random
from turtle import *
from time import sleept = 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()
done()
四、树形4
效果图
代码:
from turtle import *
from random import *
from math import *def tree(n, l):pd()t = cos(radians(heading() + 45)) / 8 + 0.25pencolor(t, t, t)pensize(n / 4)forward(l)if n > 0:b = random() * 15 + 10c = random() * 15 + 10d = 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.5pencolor(n, n, n)circle(2)left(90)pu()backward(l)bgcolor(0.5, 0.5, 0.5)
ht()
speed(0)
tracer(0, 0)
left(90)
pu()
backward(300)
tree(13, 100)
done()
Python Turtle库画树相关推荐
- 用Python Turtle库画一个萌化的蜘蛛侠
你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...
- Python Turtle库画一棵对称勾股树,美丽惊艳的分形世界!
分形,具有以非整数维形式充填空间的形态特征.通常被定义为"一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状",即具有自相似的性质.分形(Fr ...
- python turtle库画七彩蟒蛇_Python Turtle库绘制蟒蛇
使用Python Turtle库来绘制蟒蛇 import turtle引入了海龟绘图体系 使用setup函数,设定了一个宽650像素和高350像素的窗体,其位置左上角坐标是200,200 说明位置在距 ...
- 一篇文教你使用python Turtle库画出“精美碎花小清新风格树”快来拿代码!
Turtle库手册可以查询查询 python图形绘制库turtle中文开发文档及示例大全,手册中现有示例,不需要自己动手就可以查看演示. 文章修改记录 修改记录 1:2020年5月17日 12:06: ...
- python turtle画有趣的图形_使用python Turtle库画出“精美碎花小清新风格树”
Turtle库手册可以查询查询 使用Turtle画树,看了一下网上的代码,基本上核心的方法是使用递归:其次通过递归传参更笔的粗细从而改变绘制时的线段,更改树的躯干大小,在遍历到最后一个节点时,更改笔的 ...
- 教你一招用 Python Turtle 库画出“精美碎花小清新风格树”,速取代码! | 原力计划...
作者 | 1_bit 责编 | 王晓曼 出品 | CSDN博客 开始 使用Turtle画树,看了一下网上的代码,基本上核心的方法是使用递归:其次通过递归传参更笔的粗细从而改变绘制时的线段,更改树的躯干 ...
- python turtle库画图案-Python基础图形绘制库——turtle
(1).介绍 turtle库也叫海龟库,是turtle绘图体系的Python实现.turtle库是Python语言的标准库之一,是入门级的图形绘制函数库. turtle绘图体系:也叫海龟绘图系统,它是 ...
- python turtle库画图案-python中的turtle库绘制图形
1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...
- python turtle库画图案-Python如何使用turtle库绘制图形
1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...
最新文章
- Oracle后台进程
- thinkphp-查询数据-基本查询
- 人脸识别损失函数笔记
- 网络基础:分享几个路由器设置小技巧,总有用得到的一天!
- H.Minimum-cost Flow
- 【转】aspx,ascx和ashx使用小结
- 窗口位置按钮取消_VBA002:“宏”的保存位置有哪几种方式?
- 三套致富战略-教你成为百万富翁
- 庆祝本人在cnblogs排名进入前2000!
- 数据库SQL语句解析
- 【2013高考作文】重庆作文
- iphone 与 PC端电脑投屏设置
- 汇率转换方法java,[java] 汇率换算器实现(2)
- POST注入-显错注入 ——合天网安实验室学习笔记
- js下载文件 阿星小栈
- R语言对京东商品进行文本爬虫
- 云服务器怎么多人进去编辑文档,有道云协作怎么实现多人协同编辑 多人同时处理文档方法...
- OpenGL光源位置
- c语言 vc++6.0 插入图片,C语言VC++6.0环境中如何插入图片
- 怀念上世纪90年代的中国摇滚乐