520,谐音:“我爱你”,一直觉得,520真正的意义,不单是用于表达爱,也不是为了收礼物和红包,而是提醒我们,不要忘记爱与被爱。
废话不多说,下面整理了9个效果图和参考代码,感兴趣的朋友可以看看
注:本次展示的效果图不一定能表白成功,还需结合实际情况和另一半的想法,有优秀案例的可以在评论区分享
一、浪漫玫瑰花
实现代码:
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()
什么?只有玫瑰花太单调?那再给你来几个爱心够不够?
二、浪漫玫瑰加爱心
实现代码:
import turtle import time import random # 爱心函数 def yellowheart(x, y, liftx): turtle.pensize(3) turtle.speed(10) turtle.color("red", "red") turtle.up() turtle.goto(x, y) turtle.down() turtle.begin_fill() turtle.left(liftx) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() def rose(): turtle.speed(0) # 画笔移动的速度 #turtle.tracer(False) # 设置初始位置 turtle.penup() # 提起画笔 turtle.left(90) # 逆时针转动画笔90度 turtle.fd(200) turtle.pendown() # 放下画笔,移动画笔即开始绘制 turtle.right(90) # 设置画笔的大小 turtle.pensize(2) # 花蕊 turtle.fillcolor("red") # 填充颜色 turtle.begin_fill() # 开始填充 turtle.circle(10, 180) turtle.circle(25, 110) turtle.left(50) turtle.circle(60, 45) turtle.circle(20, 170) turtle.right(24) turtle.fd(30) turtle.left(10) turtle.circle(30, 110) turtle.fd(20) turtle.left(40) turtle.circle(90, 70) turtle.circle(30, 150) turtle.right(30) turtle.fd(15) turtle.circle(80, 90) turtle.left(15) turtle.fd(45) turtle.right(165) turtle.fd(20) turtle.left(155) turtle.circle(150, 80) turtle.left(50) turtle.circle(150, 90) turtle.end_fill() # 结束填充 # 右侧花瓣 turtle.left(150) turtle.circle(-90, 70) turtle.left(20) turtle.circle(75, 105) turtle.setheading(60) turtle.circle(80, 98) turtle.circle(-90, 40) # 左侧花瓣 turtle.left(180) turtle.circle(90, 40) turtle.circle(-80, 98) turtle.setheading(-83) # 左侧叶子 turtle.fd(30) turtle.left(90) turtle.fd(25) turtle.left(45) turtle.fillcolor("green") turtle.begin_fill() turtle.circle(-80, 90) turtle.right(90) turtle.circle(-80, 90) turtle.end_fill() turtle.right(135) turtle.fd(60) turtle.left(180) turtle.fd(85) turtle.left(90) turtle.fd(80) # 右侧叶子 turtle.right(90) turtle.right(45) turtle.fillcolor("green") turtle.begin_fill() turtle.circle(80, 90) turtle.left(90) turtle.circle(80, 90) turtle.end_fill() turtle.left(135) turtle.fd(60) turtle.left(180) turtle.fd(60) turtle.right(90) turtle.circle(200, 50) # 画一个圆 200 是半径,50 是弧度 time.sleep(1) # turtle.tracer(False) #turtle.pensize(3) #turtle.speed(0) turtle.color("red", "red") turtle.up() turtle.goto(-230, 50) turtle.down() turtle.begin_fill() turtle.left(180) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() time.sleep(1) # turtle.tracer(False) #turtle.pensize(3) #turtle.speed(0) turtle.color("red", "red") turtle.up() turtle.goto(-230, -80) turtle.down() turtle.begin_fill() turtle.left(-30) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() time.sleep(1) # turtle.tracer(False) # turtle.pensize(3) # turtle.speed(0) turtle.color("red", "red") turtle.up() turtle.goto(-130, -180) turtle.down() turtle.begin_fill() turtle.left(-80) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() time.sleep(1) # turtle.tracer(False) # turtle.pensize(3) # turtle.speed(0) turtle.color("red", "red") turtle.up() turtle.goto(200, -200) turtle.down() turtle.begin_fill() turtle.left(-90) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() time.sleep(1) # turtle.tracer(False) # turtle.pensize(3) # turtle.speed(0) turtle.color("red", "red") turtle.up() turtle.goto(200, 50) turtle.down() turtle.begin_fill() turtle.left(90) turtle.fd(80) turtle.circle(-40, 180) turtle.left(90) turtle.circle(-40, 180) turtle.left(0) turtle.fd(80) turtle.end_fill() def figure1(): turtle.reset() turtle.tracer(False) rose() yellowheart(-230, 50, 180) # 左一 #time.sleep(2) def figure2(): # turtle.reset() turtle.tracer(False) rose() yellowheart(-230, -80, -30) # 左二 # time.sleep(2) def figure3(): turtle.reset() turtle.tracer(False) rose() yellowheart(-130, -180, -30) # 左三 # time.sleep(2) def figure4(): turtle.reset() turtle.tracer(False) rose() yellowheart(200, 50, 90) # 右一 # ime.sleep(2) def figure5(): turtle.reset() turtle.tracer(False) rose() yellowheart(200, -200, -90) # 右二 # time.sleep(2) if __name__ == "__main__": rose() # figure1() # # yellowheart(-230, -80, -30) # 左二 # 不让自动退出,放在程序的最后一行 # 不然画画结束后会自动退出 turtle.done() coding:utf-8
三、心心相印
实现代码:
from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def small_Circle(size): # 函数用于绘制心的小圆 speed(10) for i in range(210): forward(size) right(0.786) def big_Circle(size): # 函数用于绘制心的大圆 speed(10) for i in range(150): forward(size) right(0.3) def line(size): speed(10) forward(51 * size) def heart(x, y, size): go_to(x, y) left(150) begin_fill() line(size) big_Circle(size) small_Circle(size) left(120) small_Circle(size) big_Circle(size) line(size) end_fill() def main(): pensize(2) color('red', 'pink') getscreen().tracer(1, 0) heart(100, 0, 0.7) go_to(80, 70) write("先生", font=("楷体", 18, "normal")) setheading(0) heart(-80, -100, 1) go_to(-110, 15) write("小姐", font=("宋体", 20, "normal")) go_to(40, -80) write("三生有幸遇见你!", move=True, align="left", font=("arial", 22, "italic")) done() main()
四、粉嫩爱心
实现代码:
'''不正经爱心''' #coding=utf-8 import turtle import time def draw_circle(): for i in range(400): turtle.right(0.5) turtle.forward(1) def draw_love(): # turtle.color('red','darkred') # turtle.pensize(1) turtle.pen(fillcolor="pink", pencolor="red", pensize=8) turtle.speed(2000) turtle.goto(0, 0) turtle.begin_fill() turtle.left(140) turtle.forward(224) draw_circle() turtle.left(120) draw_circle() turtle.forward(224) turtle.end_fill() turtle.write("I Love you") time.sleep(2) turtle.up() turtle.goto(150, 20) turtle.color('black') turtle.write('纵然万劫不复,纵然相思入骨,我待你依旧如初!', font=("微软雅黑", 18, "normal")) time.sleep(2) def draw_abc(): turtle.fillcolor("pink") turtle.pencolor("red") turtle.pensize(10) turtle.speed(1) turtle.up() turtle.goto(0, -50) turtle.down() turtle.begin_fill() turtle.circle(45) turtle.end_fill() time.sleep(2) def word(): turtle.up() turtle.goto(-100, 200) turtle.color("red") turtle.pensize(4) # turtle.down() turtle.write('宝贝,5.20快乐!', font=("隶书", 18, "bold")) time.sleep(10) draw_love() draw_abc() word()
五、丘比特一键穿心
程序代码:
import turtle as t t.color('red','pink') t.begin_fill() t.width(5) t.left(135) t.fd(100) t.right(180) t.circle(50,-180) t.left(90) t.circle(50,-180) t.right(180) t.fd(100) t.pu() t.goto(50,-30) t.pd() t.right(90) t.fd(100) t.right(180) t.circle(50,-180) t.left(90) t.circle(50,-180) t.right(180) t.fd(100) t.end_fill() t.hideturtle() t.pu() t.goto(250,-70) t.pd() t.color('black') t.width(5) t.left(70) t.fd(50) t.fd(-50) t.left(70) t.fd(50) t.fd(-50) t.left(145) t.fd(20) t.left(145) t.fd(50) t.fd(-50) t.left(70) t.fd(50) t.fd(-50) t.left(145) t.fd(20) t.left(145) t.fd(50) t.fd(-50) t.left(70) t.fd(50) t.fd(-50) t.left(145) t.width(3) t.fd(220) t.right(90) t.pu() t.fd(10) t.pd() t.left(90) t.circle(10,180) t.circle(10,-90) t.right(90) t.fd(-10) t.pu() t.fd(90) t.left(90) t.fd(10) t.left(90) t.pd() t.circle(10,180) t.circle(10,-90) t.left(90) t.fd(100) t.begin_fill() t.left(30) t.fd(15) t.right(35) t.fd(50) t.right(150) t.fd(50) t.right(62) t.fd(25) t.end_fill() t.done()
六、发射爱心小人
实现代码:
# 2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def head(x, y, r): go_to(x, y) speed(1) circle(r) leg(x, y) def leg(x, y): right(90) forward(180) right(30) forward(100) left(120) go_to(x, y - 180) forward(100) right(120) forward(100) left(120) hand(x, y) def hand(x, y): go_to(x, y - 60) forward(100) left(60) forward(100) go_to(x, y - 90) right(60) forward(100) right(60) forward(100) left(60) eye(x, y) def eye(x, y): go_to(x - 50, y + 130) right(90) forward(50) go_to(x + 40, y + 130) forward(50) left(90) def big_Circle(size): speed(20) for i in range(150): forward(size) right(0.3) def line(size): speed(1) forward(51 * size) def small_Circle(size): speed(10) for i in range(210): forward(size) right(0.786) def heart(x, y, size): go_to(x, y) left(150) begin_fill() line(size) big_Circle(size) small_Circle(size) left(120) small_Circle(size) big_Circle(size) line(size) end_fill() def main(): pensize(2) color('red', 'pink') head(-120, 100, 100) heart(250, -80, 1) go_to(200, -300) write("To: 送给智慧与美貌并存的小仙女!", move=True, align="left", font=("楷体", 20, "normal")) done() main()
七、浪漫动态樱花树
实现代码:
import turtle as T import random import time # 画樱花的躯干(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') # 白 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') # 赭(zhě)色 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() # 掉落的花瓣 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') # wheat小麦 t.left(90) t.up() t.backward(150) t.down() t.color('sienna') # 画樱花的躯干 Tree(60, t) # 掉落的花瓣 Petal(200, t) w.exitonclick()
八、专属心形词云
实现代码:
from wordcloud import WordCloud import PIL.Image as image import numpy as np import jieba # 分词 def trans_CN(text): # 接收分词的字符串 word_list = jieba.cut(text) # 分词后在单独个体之间加上空格 result = " ".join(word_list) return result # 要读取的txt文本 with open("love.txt", encoding="utf-8") as fp: text = fp.read() # print(text) # 将读取的中文文档进行分词 text = trans_CN(text) mask = np.array(image.open("love.png")) #添加心形图片 wordcloud = WordCloud( # 添加遮罩层 mask=mask, # 生成中文字的字体,必须要加,不然看不到中文 font_path="C:\Windows\Fonts\STXINGKA.TTF" ).generate(text) image_produce = wordcloud.to_image() image_produce.show()
九、女朋友画像字符画
实现代码:
from PIL import Image, ImageDraw, ImageFont def draw(pic, draw_text): img = cv2.imread(pic) blank = Image.new("RGB", [img.shape[1], img.shape[0] ], "white") drawObj = ImageDraw.Draw(blank) n = 10 m = 9 font = ImageFont.truetype(font_path, size = m) for i in range(0, img.shape[0], n): for j in range(0, img.shape[1], n): drawObj.text( [j, i], draw_text[int(j / n) % len(draw_text)], fill = (img[i][j][2], img[i][j][1], img[i][j][0]), font = font ) blank.save('img_' + pic) draw('1.jpg', "我爱你")
到这里就结束了,有能力的朋友可以在上面代码的基础上重新设计优化一下,没能力的朋友可以期待一下评论区小伙伴们的分享