python绘图 用python绘制樱花树
刘早起 人气:0想了解用python绘制樱花树的相关内容吗,刘早起在本文为您仔细讲解python绘图的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,绘图,python,绘制樱花树,下面大家一起来学习吧。
黑夜可能漫长,但总会迎来温暖的阳光,三月如期而至,武大的樱花又一次盛开。那么今天就一起来看看怎样在python中画一棵美丽的樱花树~
说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
一、安装与引入
安装没有什么难度直接pip安装就可以
pip install turtle
可使用以下3种方法引入:
二、使用
turtle库使用起来也很简单,主要就是利用几个核心的控制代码
turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点, turtle.fd(d):以当前方向,往前行进d像素。 turtle.bk(d):保持当前方向不变,往后退行d像素。 turtle.circle(r,angle):以r为半径圆的angle角度旋转。 turtle.penup():抬笔 turtle.pendown():落笔 urtle.left(angle):向左旋转angle度。 turtle.right(angle):向右旋转angle度。
比如绘制树干部分的代码可以这样写
def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 6 <= branch <= 12: # if random.randint(0, 2) == 0: #随机绘制 t.color('snow') #设置颜色 else: t.color('lightcoral') # 树叶颜色 t.pensize(branch / 3) elif branch < 6: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') # t.pensize(branch / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branch / 10) # 6 t.forward(branch) a = 1.5 * random.random() t.right(20 * a) b = 1.5 * random.random() Tree(branch - 10 * b, t) t.left(40 * a) Tree(branch - 10 * b, t) t.right(20 * a) t.up() t.backward(branch) t.down()
而写字的部分就不用一笔一划的去绘制,直接使用turtle.write()就可以在指定位置写上你需要的文字。
write(arg,move=false,align='left',font=('arial',8,'normal')) #arg--将写入Turtle绘画屏幕的文字。 #align(可选)--“左(left)”、“中(center)”或“右(right)”之一。 #font(可选)--(fontname、fontsize、fonttype)。
那么来看看最后效果吧!
完整源码:
import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12: if random.randint(0, 2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 3) elif branch < 8: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branch / 10) # 6 t.forward(branch) a = 1.5 * random.random() t.right(20 * a) b = 1.5 * random.random() Tree(branch - 10 * b, t) t.left(40 * a) Tree(branch - 10 * b, t) t.right(20 * a) t.up() t.backward(branch) 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) # 绘图区域 t = T.Turtle() # 画布大小 w = T.Screen() t.hideturtle() # 隐藏画笔 t.getscreen().tracer(5, 0) w.screensize(bg='wheat') # wheat小麦 t.left(90) t.up() t.backward(150) t.down() t.color('sienna') # 画樱花的躯干 Tree(60, t) # 掉落的花瓣 Petal(200, t) w.exitonclick()
加载全部内容