首页 > 分享 > Python:画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树)

Python:画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树)

最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~)

one 樱花树

动态生成樱花
效果图(这个是动态的):

import turtle as T

import random

import time

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

t.pensize(branch / 10)

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

t.left(90)

t.up()

t.backward(150)

t.down()

t.color('sienna')

Tree(60, t)

Petal(200, t)

w.exitonclick()

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

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

speed(0)

tracer(0,0)

pu()

backward(100)

left(90)

pu()

backward(300)

tree(12,100)

done()

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

speed(0)

tracer(0, 0)

left(90)

pu()

backward(300)

tree(13, 100)

done()

python

two 玫瑰花
效果(有绘制过程)

 

from turtle import *

import time

setup(1000,800,0,0)

speed(0)

penup()

seth(90)

fd(340)

seth(0)

pendown()

speed(5)

begin_fill()

fillcolor('red')

circle(50,30)

for i in range(10):

fd(1)

left(10)

circle(40,40)

for i in range(6):

fd(1)

left(3)

circle(80,40)

for i in range(20):

fd(0.5)

left(5)

circle(80,45)

for i in range(10):

fd(2)

left(1)

circle(80,25)

for i in range(20):

fd(1)

left(4)

circle(50,50)

time.sleep(0.1)

circle(120,55)

speed(0)

seth(-90)

fd(70)

right(150)

fd(20)

left(140)

circle(140,90)

left(30)

circle(160,100)

left(130)

fd(25)

penup()

right(150)

circle(40,80)

pendown()

left(115)

fd(60)

penup()

left(180)

fd(60)

pendown()

end_fill()

right(120)

circle(-50,50)

circle(-20,90)

speed(1)

fd(75)

speed(0)

circle(90,110)

penup()

left(162)

fd(185)

left(170)

pendown()

circle(200,10)

circle(100,40)

circle(-52,115)

left(20)

circle(100,20)

circle(300,20)

speed(1)

fd(250)

penup()

speed(0)

left(180)

fd(250)

circle(-300,7)

right(80)

circle(200,5)

pendown()

left(60)

begin_fill()

fillcolor('green')

circle(-80,100)

right(90)

fd(10)

left(20)

circle(-63,127)

end_fill()

penup()

left(50)

fd(20)

left(180)

pendown()

circle(200,25)

penup()

right(150)

fd(180)

right(40)

pendown()

begin_fill()

fillcolor('green')

circle(-100,80)

right(150)

fd(10)

left(60)

circle(-80,98)

end_fill()

penup()

left(60)

fd(13)

left(180)

pendown()

speed(1)

circle(-200,23)

exitonclick()

python

 

from turtle import *

import random

import time

n = 100.0

speed("fastest")

screensize(bg='seashell')

left(90)

forward(3*n)

color("orange", "yellow")

begin_fill()

left(126)

for i in range(5):

forward(n/5)

right(144)

forward(n/5)

left(72)

end_fill()

right(126)

color("dark green")

backward(n*4.8)

def tree(d, s):

if d <= 0: return

forward(s)

tree(d-1, s*.8)

right(120)

tree(d-3, s*.5)

right(120)

tree(d-3, s*.5)

right(120)

backward(s)

tree(15, n)

backward(n/2)

for i in range(200):

a = 200 - 400 * random.random()

b = 10 - 20 * random.random()

up()

forward(b)

left(90)

forward(a)

down()

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

color('tomato')

else:

color('wheat')

circle(2)

up()

backward(a)

right(90)

backward(b)

time.sleep(60)

python

相关知识

Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
Python:画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树)
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰)
怎么画一棵水彩樱花树
python 绘制一个四瓣花图
python运行出玫瑰花的代码
用python画一朵动态玫瑰
c语言樱花飘落代码
Python:绘制樱花树
python画一朵花的代码

网址: Python:画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树) https://m.huajiangbk.com/newsview2468518.html

所属分类:花卉
上一篇: 一种樱桃保鲜箱的制作方法与工艺
下一篇: 《夕阳,钢琴谱》樱桃小丸子背景音