# Project Leader:刘 |
# Project:表白源码 |
import turtle |
import random |
def love(x,y): #在(x,y)处画爱心lalala |
lv = turtle.Turtle() |
lv.hideturtle() |
lv.up() |
lv.goto(x,y) #定位到(x,y) |
def curvemove(): #画圆弧 |
for i in range ( 20 ): |
lv.right( 10 ) |
lv.forward( 2 ) |
lv.color( 'red' , 'pink' ) |
lv.speed( 10000000 ) |
lv.pensize( 1 ) |
#开始画爱心lalala |
lv.down() |
lv.begin_fill() |
lv.left( 140 ) |
lv.forward( 22 ) |
curvemove() |
lv.left( 120 ) |
curvemove() |
lv.forward( 22 ) |
lv.write( "名字" ,font = ( "Arial" , 12 , "normal" ),align = "center" ) #注意:一定要写上表白的人的名字 |
lv.left( 140 ) #画完复位 |
lv.end_fill() |
def tree(branchLen,t): |
if branchLen > 5 : #剩余树枝太少要结束递归 |
if branchLen< 20 : |
t.color( "green" ) |
t.pensize(random.uniform((branchLen + 5 ) / 4 - 2 , (branchLen + 6 ) / 4 + 5 )) |
t.down() |
t.forward(branchLen) |
love(t.xcor(),t.ycor()) #传输现在turtle的坐标 |
t.up() |
t.backward(branchLen) |
t.color( "brown" ) |
return |
t.pensize(random.uniform((branchLen + 5 ) / 4 - 2 ,(branchLen + 6 ) / 4 + 5 )) |
t.down() |
t.forward(branchLen) |
# 以下递归 |
ang = random.uniform( 15 , 45 ) |
t.right(ang) |
tree(branchLen - random.uniform( 12 , 16 ),t) #随机决定减小长度 |
t.left( 2 * ang) |
tree(branchLen - random.uniform( 12 , 16 ),t) #随机决定减小长度 |
t.right(ang) |
t.up() |
t.backward(branchLen) |
myWin = turtle.Screen() |
t = turtle.Turtle() |
t.hideturtle() |
t.speed( 1000 ) |
t.left( 90 ) |
t.up() |
t.backward( 200 ) |
t.down() |
t.color( "brown" ) |
t.pensize( 32 ) |
t.forward( 60 ) |
tree( 100 ,t) |
myWin.exitonclick() |