画表白-奇技淫巧篇
import turtle
import time# 實現(xiàn)清屏
def clear_screen():turtle.penup() #畫筆抬起turtle.goto(0,0) #定位到(0,0)turtle.color('white')turtle.pensize(800) #畫筆粗細(xì)turtle.pendown() #畫筆落下turtle.setheading(0) #設(shè)置朝向turtle.fd(300) #前進(jìn)turtle.bk(600) #后退# 初始化海龜?shù)奈恢?def go_start(x, y, state):turtle.pendown() if state else turtle.penup()turtle.goto(x, y)#畫線,state為真時海龜回到原點,為假時不回到原來的出發(fā)點
def draw_line(length, angle, state):turtle.pensize(1)turtle.pendown()turtle.setheading(angle)turtle.fd(length)turtle.bk(length) if state else turtle.penup()turtle.penup()# 畫出發(fā)射愛心的小人
def draw_people(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.pensize(2)turtle.color('black')turtle.setheading(0)turtle.circle(35, 360)turtle.penup()turtle.pensize(3)turtle.setheading(90)turtle.fd(45)turtle.setheading(180)turtle.fd(20)turtle.setheading(0)turtle.fd(35)turtle.pendown()turtle.circle(4, 360)turtle.penup()turtle.goto(x, y)turtle.pensize(2)turtle.setheading(0)turtle.fd(20)turtle.setheading(90)turtle.fd(20)turtle.setheading(-90)turtle.pendown()turtle.circle(5, 180)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(20)turtle.setheading(0)turtle.fd(35)turtle.setheading(60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(40)turtle.setheading(0)turtle.fd(35)turtle.setheading(-60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(60)turtle.setheading(-135)turtle.fd(60)turtle.bk(60)turtle.setheading(-45)turtle.fd(30)turtle.setheading(-135)turtle.fd(35)turtle.penup()# 畫愛心
def draw_heart(size):turtle.color('red', 'pink')turtle.pensize(2)turtle.pendown()turtle.setheading(150)turtle.begin_fill()turtle.fd(size)turtle.circle(size * -3.745, 45)turtle.circle(size * -1.431, 165)turtle.left(120)turtle.circle(size * -1.431, 165)turtle.circle(size * -3.745, 45)turtle.fd(size)turtle.end_fill()# 畫箭羽
def draw_feather(size):angle = 30 # 箭的傾角feather_num = size // 6 # 羽毛的數(shù)量feather_length = size // 3 # 羽毛的長度feather_gap = size // 10 # 羽毛的間隔for i in range(feather_num):draw_line(feather_gap, angle + 180, False) # 箭柄,不折返draw_line(feather_length, angle + 145, True) # 羽翼,要折返draw_line(feather_length, angle + 145, False)draw_line(feather_num * feather_gap, angle, False)draw_line(feather_length, angle + 145 + 180, False)for i in range(feather_num):draw_line(feather_gap, angle + 180, False) # 箭柄,不折返draw_line(feather_length, angle - 145, True) # 羽翼,要折返draw_line(feather_length, angle - 145, False)draw_line(feather_num * feather_gap, angle, False)draw_line(feather_length, angle - 145 + 180, False)# 畫一箭穿心,最后箭的頭沒有畫出來,用海龜來代替
def arrow_heart(x, y, size):go_start(x, y, False)draw_heart(size * 1.15)turtle.setheading(-150)turtle.penup()turtle.fd(size * 2.2)draw_heart(size)turtle.penup()turtle.setheading(150)turtle.fd(size * 2.2)turtle.color('black')draw_feather(size)turtle.pensize(4)turtle.setheading(30)turtle.pendown()turtle.fd(size * 2)turtle.penup()turtle.setheading(29)turtle.fd(size * 5.7)turtle.color('black')turtle.pensize(4)turtle.pendown()turtle.fd(size * 1.2)#顯示倒數(shù)3,2,1
def draw_0(i):turtle.speed(0)turtle.penup()turtle.hideturtle() # 隱藏箭頭顯示turtle.goto(-50, -100)turtle.color('red')write = turtle.write(i, font=('宋體', 200, 'normal'))time.sleep(1)# 顯示文字
def draw_1(name):turtle.penup()turtle.hideturtle() #隱藏箭頭顯示turtle.goto(-250, 0)turtle.color('red')turtle.write(f'{name},來吧', font=('宋體', 60, 'normal'))time.sleep(2)# 顯示發(fā)射愛心的小人兒
def draw_2():turtle.speed(3)draw_people(-250, 20)turtle.penup()turtle.goto(-150, -30)draw_heart(14)turtle.penup()turtle.goto(-20, -60)draw_heart(25)turtle.penup()turtle.goto(205, -100)draw_heart(43)turtle.hideturtle()time.sleep(2)def draw_3():turtle.penup()turtle.hideturtle() # 隱藏箭頭顯示turtle.goto(-220, 50)turtle.color('red')turtle.write('不離', font=("SimHei", 60, "normal"))turtle.penup()turtle.goto(0, -50)turtle.write('不棄', font=("SimHei", 60, "normal"))time.sleep(2)# 顯示一箭穿心
def draw_4(name1,name2):turtle.speed(10)turtle.penup()turtle.goto(-210, -200)turtle.color('blue')turtle.pendown()turtle.write(f'{name1}\t{name2}', font=('wisdom', 50, 'normal'))turtle.speed(1)turtle.penup()turtle.color("red")turtle.goto(-31, -200)turtle.write('?',font=('wisdom', 50, 'normal'))arrow_heart(20, -60, 51)turtle.showturtle()number=[3,2,1] #儲存顯示界面倒數(shù)數(shù)字1,2,3if __name__ == '__main__':user = "向楓"name = "傻豬豬"turtle.setup(900, 500) #調(diào)畫布的尺寸for i in number:draw_0(i)clear_screen()draw_1(name)clear_screen()draw_2()clear_screen()draw_3()clear_screen()draw_4(user,name)turtle.done()
?
總結(jié)
- 上一篇: 平衡术AVL
- 下一篇: 裸辞后,过于真实...