Python draws a beautiful cherry tree (different kinds of cherry + Rose + Christmas tree)

There are many tree diagrams drawn in Python (most of them are turnle libraries), which is very beautiful. I sorted them out and selected some code th...

There are many tree diagrams drawn in Python (most of them are turnle libraries), which is very beautiful. I sorted them out and selected some code that I think is good to share with you (I have tested these, and they can be generated indeed)
one cherry tree

  • Dynamic Cherry Blossom generation
    Rendering (this is dynamic):

  • Implementation code

  • Many people learn python, master the basic syntax, do not know where to find cases to start.

    Many people who have already done cases do not know how to learn more advanced knowledge.

    Then for these three types of people, I will provide you with a good learning platform, free access to video tutorials, e-books, and the source code of the course!

    QQ group: 127341871

import turtle as T
import random
import time

# Painting the trunk of Cherry Blossom(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') # white
else:
t.color('lightcoral') # Pale coral
t.pensize(branch / 3)
elif branch < 8:
if random.randint(0, 1) == 0:
t.color('snow')
else:
t.color('lightcoral') # Pale coral
t.pensize(branch / 2)
else:
t.color('sienna') # Ochre(zhě)colour
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()

# Fallen petals
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') # Pale coral
t.circle(1)
t.up()
t.backward(a)
t.right(90)
t.backward(b)

# Drawing area
t = T.Turtle()
# canvas size
w = T.Screen()
t.hideturtle() # Hidden brush
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat') # wheat Wheat
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')

# Painting the trunk of Cherry Blossom
Tree(60, t)
# Fallen petals
Petal(200, t)
w.exitonclick()

  • Falling effect
    Design sketch:
    Code:

from turtle import *
from random import *
from math import *

def tree(n,l):
pd()
#Shadow effect
t = cos(radians(heading()+45))/8+0.25
pencolor(t,t,t)
pensize(n/3)
forward(l)

if n>0:
b = random()*15+10 ා right branch deflection angle
c = random()*15+10 × left branch deflection angle
d = l*(random()*0.25+0.7) × length of next branch
#Turn right at an angle and draw the right branch
right(b)
tree(n-1,d)
#Turn left at an angle and draw the left branch
left(b+c)
tree(n-1,d)
Turn back
right(c)
else:
To draw leaves
right(90)
n=cos(radians(heading()-45))/4+0.5
pencolor(n,n*0.8,n*0.8)
circle(3)
left(90)
#Add 0.3 times of fallen leaves
if(random()>0.7):
pu()
Falling down
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)
To draw leaves
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()
The return of Qi
t=heading()
setheading(an)
backward(dis)
setheading(t)
pu()
backward(l)

bgcolor(0.5,0.5,0.5) × background color
ht(), hidden
speed(0) × speed 1-10 progressive, 0 fastest
tracer(0,0)
pu()
backward(100)
left(90) × left turn 90 degrees
pu()
backward(300)
Tree (12100) - recursion layer 7
done()
  • Dark effect
    Effect:

    Code

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

two roses
Effect (with painting process)
Code



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

three Christmas tree

  • Christmas tree (dynamic generation effect)

    Code:

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)

To be continued!

3 December 2019, 11:00 | Views: 6924

Add new comment

For adding a comment, please log in
or create account

0 comments