前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >七夕了,给你的那个TA画上一箭倾心吧~

七夕了,给你的那个TA画上一箭倾心吧~

作者头像
小锋学长生活大爆炸
发布2022-09-19 15:32:02
1980
发布2022-09-19 15:32:02
举报

七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?让我们一起用python画丘比特之心送给TA~

效果如图

(实际还有背景音乐)

准备工具

Python、mp3(这里准备的“一起学猫叫”)

完整文件下载链接见文末

目录结构

(exe是打包后生成的,后面会讲)

安装库

代码语言:javascript
复制
pip install turtle pygame pyinstaller

上代码

代码语言:javascript
复制
from turtle import *
from time import sleep
from pygame import mixer

def music():
    mixer.init()
    mixer.music.load('Cat.mp3')
    mixer.music.play()
    
def go_to(x, y):
    up()
    goto(x, y)
    down()

speed_base = 5
def big_Circle(size):  #函数用于绘制心的大圆
    speed(0)
    for i in range(150):
        forward(size)
        right(0.3)

def small_Circle(size):  #函数用于绘制心的小圆
    speed(0)
    for i in range(210):
        forward(size)
        right(0.786)

def line(size):
    speed(speed_base+1)
    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 arrow():
    pensize(10)
    setheading(0)
    speed(speed_base+1)
    go_to(-400, 0)
    left(15)
    forward(300)
    go_to(339, 178)
    forward(150)

def arrowHead():
    pensize(1)
    speed(speed_base+5)
    color('red', 'red')
    begin_fill()
    left(120)
    forward(20)
    right(150)
    forward(35)
    right(120)
    forward(35)
    right(150)
    forward(20)
    end_fill()


def main():
    #width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例
    #(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。
    setup(1.0,1.0)
    pensize(2)
    color('red', 'pink')
    # getscreen().tracer(30, 0) #取消注释后,快速显示图案
    heart(200, 0, 1)          #画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小
    setheading(0)             #使画笔的方向朝向x轴正方向
    heart(-80, -100, 1.5)     #画出第二颗心
    arrow()                   #画出穿过两颗心的直线
    arrowHead()               #画出箭的箭头
    speed(speed_base+1)
    go_to(400, -300)
    write("况小胖520", move=True, align="left", font=("楷体", 30, "normal"))
    done()

if __name__ == '__main__':
    music()
    main()
  • 在"main()"函数的“write”部分,可以修改成你想对TA说的话
  • 在“music()”函数的“mixer.music.load”部分,可以修改成你想播放的背景音乐

然后运行即可:

代码语言:javascript
复制
python heart.py

打包exe

如果对方没装python,那可以打包成exe给TA:

代码语言:javascript
复制
pyinstaller -F heart.py

然后在dist目录下就会生成heart.exe文件,发给TA时,记得跟mp3文件一起打包喔。

打包apk

要想打包成apk,会麻烦一点。这里用的是AidLux自带的打包工具ApkBuild

AidLux很强,以前叫AidLearning,强推,开源免费使用。

在手机上安装运行后,电脑打开浏览器即可访问AidLux,一般是ip:8000。

首先安装ApkBuild:

然后将我们的py文件和mp3文件复制到手机,浏览器输入ip:8080,要是进不去,可以手动传过去。或者去应用中心安装一下sftpgo,或者直接ssh链接传过去(端口9022,用户名root,密码aidlux)。

安装时候记得在手机环境里也装一下上面的几个库哦,很慢的话就更新下pip清华源:

代码语言:javascript
复制
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  如果顺利的话,就会给出apk的路径。(导出过程可能卡主较久,我一度以为中断了)

下载链接

Index of /web/share/软件-电脑/heart

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果如图
  • 准备工具
  • 目录结构
  • 安装库
  • 上代码
  • 打包exe
  • 打包apk
  • 下载链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档