当前位置: 首页 > 后端技术 > Python

用Python写一个七夕告白神器

时间:2023-03-26 12:01:57 Python

今天是七夕节。与现代人创造的502相比,是520。七夕是中国传统的情人节。本文分享几个Python告白程序,情侣可以单身的话可以先收藏一下,说不定下次会用到。爱情树首先,让我们画一棵结满爱情果实的树。主要实现代码:#画爱deflove(x,y):lv=turtle.Turtle()lv.hideturtle()lv.up()#定位lv.goto(x,y)#画弧defcurvemove():foriinrange(20):lv.right(10)lv.forward(2)lv.color('red','pink')lv.speed(10000000)lv.pensize(1)lv.down()lv.begin_fill()lv.left(140)lv.forward(22)curvemove()lv.left(120)curvemove()lv.forward(22)#绘制后重置lv.left(140)lv.end_fill()#画一棵树deftree(branchLen,t):#剩余的树枝太少,无法结束递归ifbranchLen>5:#如果树枝剩余的长度较短,则变绿ifbranchLen<20:t.color("green")t.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))t.向下()吨。forward(branchLen)love(t.xcor(),t.ycor())t.up()t.backward(branchLen)t.color("brown")返回t.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))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)Balloon下面看一下告白气球的实现。实现的效果是:随机生成各种颜色的气球向上飘,点击气球就会爆裂主要实现代码如下:#Balloonballoons=[]#Colorcolor_option=["red","blue","green","purple","pink","yellow","orange"]#Balloonsizesize=50#气球线defline(x,y,a,b,line_width=1,color_name="black"):up()goto(x,y)down()color(color_name)width(line_width)goto(a,b)defdistance(x,y,a,b):#确定鼠标点击位置到气球坐标的距离return((a-x)**2+(b-y)**2)**0.5deftap(x,y):foriinrange(len(balloons)):#判断是否点击气球队列中的一个ifdistance(x,y,balloons[i][0],balloons[i][1])<(size/2):#删除气球气球。pop(i)returndefdraw():#清除画布clear()foriinrange(1,(len(balloons)+1)):line(balloons[-i][0],balloons[-i][1],气球[-i][0],气球[-i][1]-尺寸*1.5,1)up()goto(气球[-i][0],气球[-i][1])#绘制原点,参数为大小和颜色dot(size,balloons[-i][2])#改变纵坐标,模仿气球的上升balloons[-i][1]=balloons[-i][1]+1#修改画布update()defgameLoop():#生成一个概率为1/50的气球ifrandrange(0,50)==1:#气球坐标,从边界位置减去气球大小x=randrange(-200+size,200-size)#在颜色队列中随机选择一种颜色c=choice(color_option)#添加气球到队列balloons.append([x,-200-size,c])draw()ontimer(gameLoop,10)告白卡我们可以使用原始照片中的Python通过添加一些适合主题的诗歌来制作告白卡原图:效果图:主要实现代码如下:img=cv2.imread('test.png')mask=np.zeros(img.shape[:2],np.uint8)size=(1,65)bgd=np.zeros(大小,np.float64)fgd=np.zeros(大小,np.float64)rect=(1,1,img.shape[1],img.shape[0])cv2.grabCut(img,mask,矩形,bgd,fgd,10,cv2.GC_INIT_WITH_RECT)mask2=np.where((mask==2)|(mask==0),1,255)img=img.astype(np.int32)img*=mask2[:,:,np.newaxis]img[img>255]=255img=img.astype(np.uint8)img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)img=Image.fromarray(img,'RGB')img.save('test1.jpg')fp=open(r"word.txt","r",encoding="utf-8")text=fp.read()mask_pic=np.array(Image.open(r"test1.jpg"))wordcloud=WordCloud(font_path='hyr3gjm.ttf',mask=mask_pic,max_words=200).generate(text)image=wordcloud.to_image()image.save("wordcloud2.png")cloud_data=np.array(image)alpha=np.copy(cloud_data[:,:,0])alpha[alpha>0]=255new_image=Image.fromarray(np.dstack((cloud_data,alpha)))card=Image.open("test.png")card=card.convert("RGBA")card.paste(new_image,(0,0),mask=new_image)card.save("card.png")当然除了这些还可以画玫瑰什么的,大家可以看看:520欢迎微信搜索Python初级,第一时间阅读获取源码,回复关键词1024,即可免费领取自己整理的各种编程语言学习资料。