写点什么

520 专属——使用 Python 代码表白究竟能不能成功?

  • 2024-05-20
    湖南
  • 本文字数:7420 字

    阅读完需:约 24 分钟

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 turtleimport timeimport 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 sleepdef 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-8import turtleimport 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 tt.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.14from 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 Timport randomimport 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 WordCloudimport PIL.Image as imageimport numpy as npimport 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 PILimport Image, ImageDraw, ImageFontdef draw(pic, draw_text):    img = cv2.imread(pic)blank = Image.new("RGB", [img.shape[1],    img.shape[0]], "white")drawObj = ImageDraw.Draw(blank)n = 10m = 9font = 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', "我爱你")
复制代码

到这里就结束了,有能力的朋友可以在上面代码的基础上重新设计优化一下,没能力的朋友可以期待一下评论区小伙伴们的分享

用户头像

欢迎关注,一起学习,一起交流,一起进步 2020-06-14 加入

公众号:做梦都在改BUG

评论

发布
暂无评论
520专属——使用Python代码表白究竟能不能成功?_Python_我再BUG界嘎嘎乱杀_InfoQ写作社区