mfc画玫瑰花代码_520用代码捕获女神芳心

今天520,有些人在思考如何脱单,有些人在思考如何表白,有些人在思考如何秀恩爱,可今天还要上班怎么破?

其实很多时候礼物不一定就需要花钱买,今天我们就用代码来一次表白吧,把你中意的代码发给她,看她能不能看懂,哈哈哈!

一、入门级

1、一行代码画爱心

print(''.join([''.join([('Love'[(x-y)%4]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

效果图

fe5e0370bfd9168b3b0f2d754a884a13.png

2、用turtle库画爱心加文字

import turtleimport mathturtle.pen()t=turtlet.up()t.goto(0,150)t.down()t.color('red')t.begin_fill()t.fillcolor('red')t.speed(1)t.left(45)t.forward(150)t.right(45)t.forward(100)t.right(45)t.forward(100)t.right(45)t.forward(100)t.right(45)t.forward(250+math.sqrt(2)*100)t.right (90)t.speed(2)t.forward(250+100*math.sqrt(2))t.right(45)t.forward(100)t.right(45)t.forward(100)t.right(45)t.forward(100)t.right(45)t.forward(150)t.end_fill()t.goto(-10,0)t.pencolor('white')#Lt.pensize(10)t.goto(-50,0)t.goto(-50,80)t.up ()#It.goto(-100,0)t.down()t.goto(-160,0)t.goto(-130,0)t.goto(-130,80)t.goto(-160,80)t.goto(-100,80)t.up()#Ot.goto(10,25)t.down()t.right(45)t.circle(25,extent=180)t.goto(60,55)t.circle(25,extent=180)t.goto(10,25)t.up()t.goto(75,80)t.down()t.goto(100,0)t.goto(125,80)t.up()t.goto(180,80)t.down()t.goto(140,80)t.goto(140,0)t.goto(180,0)t.up()t.goto(180,40)t.down()t.goto(140,40)#Ut.up()t.goto(-40,-30)t.down()t.goto(-40,-80)t.circle(40,extent=180)t.goto(40,-30)t.hideturtle()

效果图

7f5c0f0bb67cb56d2a948691388447b0.gif

二、进阶级

1、 用turtle库画一朵玫瑰花

#!/usr/bin/env python# coding: utf-8#绘制玫瑰花并添加文字import turtle# 设置画布大小# turtle.screensize(canvwidth=None, canvheight=None, bg=None)turtle.setup(width=0.6, height=0.6)# 设置初始位置turtle.penup()turtle.left(90)turtle.fd(200)turtle.pendown()turtle.right(90) # 输出文字printer = turtle.Turtle()printer.hideturtle()printer.penup()printer.back(200)printer.write("赠给亲爱的 XX", align="right", font=("楷体", 16, "bold"))printer.write("from XXX", align="center", font=("楷体", 12, "normal")) # 花蕊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() # 花瓣1turtle.left(150)turtle.circle(-90, 70)turtle.left(20)turtle.circle(75, 105)turtle.setheading(60)turtle.circle(80, 98)turtle.circle(-90, 40) # 花瓣2turtle.left(180)turtle.circle(90, 40)turtle.circle(-80, 98)turtle.setheading(-83) # 叶子1turtle.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) # 叶子2turtle.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, 60) turtle.done()

效果图

e0f8a726df86daede23434b9617bc9f8.gif

2、用turtle库画爱心加文字

import turtleimport randomdef love(x, y):  # 在(x,y)处画爱心lalala    lv = turtle.Turtle()    lv.hideturtle()    lv.up()    lv.goto(x, y)  # 定位到(x,y)    def curvemove():  # 画圆弧        for i in range(20):            lv.right(10)            lv.forward(2)    lv.color('red', 'pink')    lv.speed(10000000)    lv.pensize(1)    # 开始画爱心lalala    lv.down()    lv.begin_fill()    lv.left(140)    lv.forward(22)    curvemove()    lv.left(120)    curvemove()    lv.forward(22)    lv.write("YZ", font=("Arial", 12, "normal"), align="center")  # 写上表白的人的名字    lv.left(140)  # 画完复位    lv.end_fill()def tree(branchLen, t):    if branchLen > 5:  # 剩余树枝太少要结束递归        if branchLen < 20:  # 如果树枝剩余长度较短则变绿            t.color("green")            t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))            t.down()            t.forward(branchLen)            love(t.xcor(), t.ycor())  # 传输现在turtle的坐标            t.up()            t.backward(branchLen)            t.color("brown")            return        t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))        t.down()        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)myWin = turtle.Screen()t = turtle.Turtle()t.hideturtle()t.speed(1000)t.left(90)t.up()t.backward(200)t.down()t.color("brown")t.pensize(32)t.forward(60)tree(100, t)myWin.exitonclick()

效果图

43428bff8b034786e0914eb53adc83e2.gif

三、高阶版1、星空下的告白

"""代码用途:表白作者:开源Linux"""def bgpic(self, picname=None):        """Set background image or return name of current backgroundimage.         Optional argument:        picname -- a string, name of a gif-file or "nopic".         If picname is a filename, set the corresponding image as background.        If picname is "nopic", delete backgroundimage, if present.        If picname is None, return the filename of the current backgroundimage.         Example (for a TurtleScreen instance named screen):        >>> screen.bgpic()        'nopic'        >>> screen.bgpic("landscape.gif")        >>> screen.bgpic()        'landscape.gif'        """        if picname is None:            return self._bgpicname        if picname not in self._bgpics:            self._bgpics[picname] = self._image(picname)        self._setbgpic(self._bgpic, self._bgpics[picname])        self._bgpicname = picname# coding: utf-8import pygameimport osimport sysfrom pygame.locals import *os.chdir('F:/微信公众号/Python/29.加载音乐')os.getcwd()pygame.init()pygame.mixer.init()pygame.mixer.music.load("告白.mp3")#pygame.mixer.music.set_volume(0.4)pygame.mixer.music.play()bg_size = width, height = 300, 200bg_rgb = (255, 255, 255)screen1 = pygame.display.set_mode(bg_size)pygame.display.set_caption("告白音乐")clock = pygame.time.Clock()play_image = pygame.image.load("开始和暂停按钮2.png").convert_alpha()pause_image = pygame.image.load("开始和暂停按钮2.png").convert_alpha()pause_rect = pause_image.get_rect()print(pause_rect.width,pause_rect.height)pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2from turtle import *from random import random,randintos.chdir('F:/微信公众号/Python/0.已发表')screen = Screen()width ,height = 900,700screen.setup(width,height)screen.title("告白")screen.bgcolor("black")screen.bgpic(r'./星空下互相告白的两个人2.gif')screen.mode("logo")screen.delay(0)printer = Turtle()printer.hideturtle()printer.penup()printer.color('red')printer.goto(-100,-350)printer.write("In the whole universe",move = True, align="left", font=("Italic", 30, "bold"))printer.goto(-50,-400)printer.write("YZ I only love you!",move = True, align="left", font=("Italic", 30, "bold"))t = Turtle(visible = False,shape='circle')t.pencolor("white")t.fillcolor("white")t.penup()t.setheading(-90)t.goto(width/2,randint(-height/2,height/2))stars = []for i in range(300):    star = t.clone()    s =random()/3    if  s>0.01 and s<0.03:        star.pencolor("black")        star.fillcolor("black")    elif s>0.03 and s<0.04:        star.pencolor("lightcoral")        star.fillcolor("lightcoral")    elif s>0.05 and s<0.1:        star.pencolor("green")        star.fillcolor("green")    elif s>0.15 and s<0.16:        star.pencolor("yellow")        star.fillcolor("yellow")    elif s>0.19 and s<0.2:        star.pencolor("red")        star.fillcolor("red")    elif s>0.21 and s<0.22:        star.pencolor("purple")        star.fillcolor("purple")    elif s>0.29 and s<0.3:        star.pencolor("darkorange")        star.fillcolor("darkorange")    elif s>0.31 and s<0.32:        star.pencolor("red")        star.fillcolor("yellow")    elif s>0.32 and s<0.33:        star.pencolor("yellow")        star.fillcolor("white")    star.shapesize(s,s)    star.speed(int(s*30))    star.setx(width/2 + randint(1,width))    star.sety( randint(-height/2,height/2))    #star.showturtle()    stars.append(star)i = 0pause = Falsewhile True:    i += 0    for star in stars:        star.setx(star.xcor() - 3 * star.speed())        if star.xcor()= 100:        break        # 查找队列事件    for event in pygame.event.get():        # 查找点击关闭窗口事件        if event.type == QUIT:            sys.exit        # 查找鼠标左右击事件        if event.type == MOUSEBUTTONDOWN:            if event.button == 1:                pause = not pause            if event.button == 3:                pause = not pause         if event.type == KEYDOWN:            if event.key == K_SPACE:                pause = not pause    screen1.fill(bg_rgb)    if pause:        pygame.mixer.music.pause()        screen1.blit(pause_image, pause_rect)    else:        pygame.mixer.music.unpause()        screen1.blit(play_image, pause_rect)    pygame.display.flip()    clock.tick(30)

效果图

e58a8bb57ba894756362066db997bc9c.gif

注:如需源代码和照片,请在公众号中回复“520”,即可免费获取。

2、照片墙

#!/usr/bin/env python# encoding: utf-8from PIL import Imageimport cv2import osos.chdir(r"F:微信公众号Python30.520表白代码照片墙ew")img = cv2.imread("start.jpg")height,width,channels = img.shapeunit_size = 120y_index = height//unit_sizex_index = width//unit_sizenew_img = Image.new('RGB',(width,height),'#FFFFFF')pic_list = []for item in os.listdir("small_pictures"):    if item.endswith(".jpg") or item.endswith(".JPG") :        pic_list.append(item)total = len(pic_list)x=0y=0for i in range(x_index*y_index):    print(f"目前进度{i}/{x_index*y_index}")    test = Image.open("small_pictures/" + pic_list[i%total]).resize((unit_size,unit_size), Image.ANTIALIAS)    new_img.paste(test,(x*unit_size,y*unit_size))    x+=1    if x==x_index:        x=0        y+=1print("素材图合成完毕!")new_img.save("out.jpg",quality=100)src1 = cv2.imread("start.jpg")src2 = cv2.imread("out.jpg")result = cv2.addWeighted(src1,0.7,src2,0.3,0)cv2.imwrite("result.jpg",result)

效果图

6091e74bf5d78c83b9f1443b29d742d1.png

注:如需照片墙源代码和照片,请在公众号中回复“520”,即可免费获取。

参考文献

https://zhuanlan.zhihu.com/p/77129961https://www.cnblogs.com/ooo888ooo/p/10629205.htmlhttps://www.zhihu.com/question/306127738/answer/558080822?utm_source=wechat_session&utm_medium=social&utm_oi=1090367802518536192
549db39b3b4d5b6aa1784413a13b5244.gif

最后祝大家520、521节日快乐,有情人终成眷属

384c50f8fea0a307dce0e1d1191ebeb7.png

结语

公众号『开源Linux』,专注分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货。后台回复『学习』,送你一套学习Linux的系列书籍,期待与你相遇。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值