用Python-turtle库作图可以画出哪些漂亮的树?
# 图一:
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 + 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.5pencolor(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.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()
绘图如下:
# 图三:
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()
绘图如下:
注:
本文借鉴:
大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
用Python-turtle库作图可以画出哪些漂亮的树?相关推荐
- Python : Turtle库--3.18画美国国旗
p = input('请输入国旗高度') # 国旗尺寸 p = float§ a = 1.9 # 一些重要数值 b = 1.0 c = 1.9*2/5 d = 7/13 e = c/12 f = d/ ...
- 用python的turtle库给你画一个头像(猪头)
用python的turtle库给你画一个头像 引 使用到的海龟绘图命令 源代码 画布和画笔设置 画脸盘子 取名字 画眼睛 画鼻子 画嘴巴 画耳朵 画腮红 小白感想 献上完整源代码 引 小白练习pyth ...
- 用Python Turtle库画一个萌化的蜘蛛侠
你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...
- python random库画多彩蟒蛇,Python Turtle库绘制蟒蛇
使用Python Turtle库来绘制蟒蛇 import turtle引入了海龟绘图体系 使用setup函数,设定了一个宽650像素和高350像素的窗体,其位置左上角坐标是200,200 说明位置在距 ...
- python turtle库画七彩蟒蛇_Python Turtle库绘制蟒蛇
使用Python Turtle库来绘制蟒蛇 import turtle引入了海龟绘图体系 使用setup函数,设定了一个宽650像素和高350像素的窗体,其位置左上角坐标是200,200 说明位置在距 ...
- python画史迪仔_Python turtle画图 使用python turtle库实现了动漫人物史迪仔的绘制 - 下载 - 搜珍网...
使用python turtle库实现了动漫人物史迪仔的绘制,画图过程尽量细分将每一个拐角都反复调整角度,直到合适为止,大概耗费了五六个小时的时间绘制成功(Using the python turtle ...
- python中turtle怎么确定坐标_关于Python turtle库使用时坐标的确定方法
关于Python turtle库使用时坐标的确定方法 想画一个比较复杂的图像,而且还想用turtle画,最让人想退却的是无规律的笔势和繁多的坐标,但既然没有按奈住冲动的心,那我告诉你一个比较笨的方法吧 ...
- python turtle绘图如何一次性画完_只要十分钟,python绘图神器turtle了解一下?
python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...
- Python turtle库(螺旋正方形)
利用python turtle库 画 螺旋正方形 螺旋正方形 import turtle #导入turtle库 turtle.pensize(2) #设置画笔的宽度(2) for i in range ...
最新文章
- Linux之切换目录命令
- python counter函数定义_分享几个自己常用的Python高级函数
- getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)
- final, finally, finalize 的区别
- 开发中常用的一些神器推荐
- 如何把电压这个浮点值转字符串输出到串口
- armgcc交叉编译的文件无法运行_从0开始搭建基于ARM GCC的软件系统02——使用ARM GCC编译SDK
- 数据建模_漫谈数据仓库之维度建模
- LocalBroadcastManager分析
- HDU 1257 最少拦截系统 简单DP
- RS232串口接线图
- html表单中文字前黑点怎么弄,如何将word文档中标题前的黑点去掉
- MySQL的binLog、redoLog、undoLog是什么?
- 测试高考体育成绩的软件,2020年新版高考体育测试成绩100分值对照表.docx
- Android 传感器之《加速传感器》——摇一摇功能
- 超级计算机发展 小记
- Image.FromStream与Image.FromFile使用区别
- 数字化招聘:猎聘、快手同行不同路
- 蜘蛛池刷百度指数和第三方贴
- 1131 神犇的悲惨一生