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


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

    效果如图

    (实际还有背景音乐)

    准备工具

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

    完整文件下载链接见文末

    目录结构

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

    安装库

    pip install turtle pygame pyinstaller

    上代码

    1. from turtle import *
    2. from time import sleep
    3. from pygame import mixer
    4. def music():
    5. mixer.init()
    6. mixer.music.load('Cat.mp3')
    7. mixer.music.play()
    8. def go_to(x, y):
    9. up()
    10. goto(x, y)
    11. down()
    12. speed_base = 5
    13. def big_Circle(size): #函数用于绘制心的大圆
    14. speed(0)
    15. for i in range(150):
    16. forward(size)
    17. right(0.3)
    18. def small_Circle(size): #函数用于绘制心的小圆
    19. speed(0)
    20. for i in range(210):
    21. forward(size)
    22. right(0.786)
    23. def line(size):
    24. speed(speed_base+1)
    25. forward(51*size)
    26. def heart( x, y, size):
    27. go_to(x, y)
    28. left(150)
    29. begin_fill()
    30. line(size)
    31. big_Circle(size)
    32. small_Circle(size)
    33. left(120)
    34. small_Circle(size)
    35. big_Circle(size)
    36. line(size)
    37. end_fill()
    38. def arrow():
    39. pensize(10)
    40. setheading(0)
    41. speed(speed_base+1)
    42. go_to(-400, 0)
    43. left(15)
    44. forward(300)
    45. go_to(339, 178)
    46. forward(150)
    47. def arrowHead():
    48. pensize(1)
    49. speed(speed_base+5)
    50. color('red', 'red')
    51. begin_fill()
    52. left(120)
    53. forward(20)
    54. right(150)
    55. forward(35)
    56. right(120)
    57. forward(35)
    58. right(150)
    59. forward(20)
    60. end_fill()
    61. def main():
    62. #width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例
    63. #(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。
    64. setup(1.0,1.0)
    65. pensize(2)
    66. color('red', 'pink')
    67. # getscreen().tracer(30, 0) #取消注释后,快速显示图案
    68. heart(200, 0, 1) #画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小
    69. setheading(0) #使画笔的方向朝向x轴正方向
    70. heart(-80, -100, 1.5) #画出第二颗心
    71. arrow() #画出穿过两颗心的直线
    72. arrowHead() #画出箭的箭头
    73. speed(speed_base+1)
    74. go_to(400, -300)
    75. write("况小胖520", move=True, align="left", font=("楷体", 30, "normal"))
    76. done()
    77. if __name__ == '__main__':
    78. music()
    79. main()
    • 在"main()"函数的“write”部分,可以修改成你想对TA说的话
    • 在“music()”函数的“mixer.music.load”部分,可以修改成你想播放的背景音乐

    然后运行即可:

    python heart.py

    打包exe

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

    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清华源:

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

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

    下载链接

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


    最后,祝大家都有那个TA ^,^ ~

  • 相关阅读:
    python 通过图片(原图)精确获取图片拍摄的位置
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java寻彝问药网站yv0v2
    二十三种设计模式全面解析-装饰器模式-超越继承的灵活装扮
    MySQL库表操作
    前端面试题:基础理论整理(篇2)
    linux上lua操作MySql增删改查(centos7)
    Word控件Spire.Doc 【页面设置】教程(3):在 C#、VB.NET 中设置 Word 页边距
    向量空间概述
    说说Pluma插件管理框架
    复习 --- QT服务器客户端
  • 原文地址:https://blog.csdn.net/sxf1061700625/article/details/126151322