先来展示一下效果图:
不知道大家给女朋友的备注是什么?下面看看我的备注。
这是我给女朋友的备注:
再来看看给女朋友一个发射爱心的图片,这个叫“既许一人以偏爱,愿尽余生之慷慨”,
看完了发射爱心,接下来我们来一个更加高级的操作,不好,被丘比特的箭射中了,只能余生“我陪你闹,你陪我笑!”
当然作为程序员,这些效果图不可能是画出来的,进入正题,我们用的是python代码写出来的,下面先附上源代码:
import turtle
import time# 实现清屏
def clear_screen():turtle.penup() #画笔抬起turtle.goto(0,0) #定位到(0,0)turtle.color('white')turtle.pensize(800) #画笔粗细turtle.pendown() #画笔落下turtle.setheading(0) #设置朝向turtle.fd(300) #前进turtle.bk(600) #后退# 初始化海龟的位置
def go_start(x, y, state):turtle.pendown() if state else turtle.penup()turtle.goto(x, y)#画线,state为真时海龟回到原点,为假时不回到原来的出发点
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()# 画出发射爱心的小人
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 # 羽毛的数量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)#显示倒数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():turtle.penup()turtle.hideturtle() #隐藏箭头显示turtle.goto(-250, 0)turtle.color('red')write = turtle.write('super honey!', font=('宋体', 60, 'normal'))time.sleep(2)# 显示发射爱心的小人儿
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')write = turtle.write('选择面包?❤', font=('wisdom', 60, 'normal'))turtle.penup()turtle.goto(0, -50)write = turtle.write('选择爱情?', font=('宋体', 60, 'normal'))time.sleep(2)# 显示一箭穿心
def draw_4():turtle.speed(10)turtle.penup()turtle.goto(-210, -200)turtle.color('blue')turtle.pendown()turtle.write('我陪你闹 你陪我笑。', font=('wisdom', 30, '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] #储存显示界面倒数数字1,2,3if __name__ == '__main__':turtle.setup(900, 500) #调画布的尺寸for i in number:draw_0(i)clear_screen()draw_1()clear_screen()draw_2()clear_screen()draw_3()clear_screen()draw_4()turtle.done()
执行效果到底是怎么样的,可以自己去执行观看,希望不要太惊艳到你。
愿每位程序员再为科技奋斗一生的同时,都有良人相伴,看到后面节日,(圣诞节,跨年,等节日)我觉得我的分享一定会帮到有些人。
希望每个人都可以像诗句里面一样,“昨夜西风凋碧树,独上西楼,望断天涯路”,然后再往下走,“衣带渐宽终不悔,为伊消得人憔悴”,全身心的投入,到最后,“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”如果我们的人生中也能有这样的追求和境界,那是一件多么幸福的事情,愿每个人手里有活,心里有爱,眼下有良人!