用 Python 向你比个心

0 前言

之前写了一篇用 Python 画一个小猪佩奇和哆啦 A 梦,然后最近看到有人用 turtle 画了一个心,觉得挺有意思的,于是把代码复制到本地,再加了个播放音乐。

1 环境说明

Win10 系统下 Python3,编译器是 Pycharm 。turtle 和 time 是 Python 自带的模块,不用辛苦安装;pygame 可以直接用 pip install pygame 安装,要是不知道该怎么安装,那还是用 Pycharm 安装吧。

2 实现

代码有点多,所以是分开来,用的时候按顺序复制就好。

先导入要用的库

import pygame
import time
import turtle as t

然后是播放音乐的功能,这里记得要把文件的路径修改一下

file = 'G:\years.mp3'  # mp3 的路径
pygame.mixer.init()  # 初始化音频
track = pygame.mixer.music.load(file)  # 载入音乐文件
pygame.mixer.music.play()  # 开始播放

turtle 的设置,背景色和颜色可以使用 #bf360c 或者 red 来替换颜色,具体的颜色喜欢哪个就用哪个,看着舒服和好看就行。

t.title('dalao 带带我')  # 设置标题栏文字
t.hideturtle()  # 隐藏箭头
t.getscreen().bgcolor('#f0f0f0')  # 背景色
t.color('#c1e6c6', 'red')  # 设置画线颜色、填充颜色,可以直接写 green,也可以用 #c1e6c6
t.pensize(2)  # 笔的大小
t.speed(2)  # 图形绘制的速度,1~10
t.up()  # 移动,不画线
t.goto(0, -150)

下面这里开始画爱心

t.down()  # 移动,画线
t.begin_fill()  # 开始填充
t.goto(0, -150)
t.goto(-175.12, -8.59)
t.left(140)
pos = []
for i in range(19):
    t.right(10)
    t.forward(20)
    pos.append((-t.pos()[0], t.pos()[1]))
for item in pos[::-1]:
    t.goto(item)
t.goto(175.12, -8.59)
t.goto(0, -150)
t.left(50)
t.end_fill()  # 结束填充,显示填充效果

这里开始写字,t.goto(0, 220) 的意思是箭头前往到这个位置,(0, 0) 是中心。

(x, y),x 是左右,正数为右,负数为左;y 是上下,正数为上,负数为下。

字体可以修改,黑体、方正舒体、华文琥珀等等,找一个合适的就好。

t.color("black")  # 设置颜色
t.up()
t.goto(0, 220)
t.write("大佬,带带我~", font=(u"方正舒体", 36, "normal"), align="center")
t.goto(200, -250)
t.write('by 伪君子', font=(u"方正舒体", 10, "bold"))

结束,如果下面的代码注释掉 t.done() 的话,那么结束播放音乐后就会自动退出;如果不注释的话,运行完代码会停留在画图的界面,音乐播放到结束设置好的时间就结束。

这里看你喜欢,我个人是喜欢播放到一定时间就自动退出,所以我注释掉了。

time.sleep(10)  # 画完后再播放 10 秒音乐,可以修改时间
pygame.mixer.music.fadeout(100)  # 停止播放
#t.done()

录制了一个 gif 做示范

3 相关说明

源代码是在知乎专栏那看见的,这里复制下来进行了修改和添加。

链接:https://zhuanlan.zhihu.com/p/38448462(点击阅读原文)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端知识分享

Vue---父子组件之间的通信

  在vue组件通信中其中最常见通信方式就是父子组件之中的通信,而父子组件的设定方式在不同情况下又各有不同。最常见的就是父组件为控制组件子组件为视图组件。父组件...

822
来自专栏iKcamp

追溯 React Hot Loader 的实现

文:萝卜(沪江金融前端开发工程师) 本文原创,转载请注明作者及出处 如果你使用 React ,你可以在各个工程里面看到 Dan Abramov 的身影。他于...

46614
来自专栏数据小魔方

数据地图系列9|excel(VBA)数据地图!

今天要跟大家分享的是数据地图系列的第九篇——excel(VBA)数据地图! 关于VBA在excel中的应用非常广泛,本篇仅仅是给出示例代码,不会对基础操作做太过...

5006
来自专栏伪君子的梦呓

用 Python 向你比个心

之前写了一篇用 Python 画一个小猪佩奇和哆啦 A 梦,然后最近看到有人用 turtle 画了一个心,觉得挺有意思的,于是把代码复制到本地,再加了个播放音乐...

1473
来自专栏拂晓风起

Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)

1412
来自专栏前端儿

CSS常见兼容性问题总结

浏览器的兼容性问题,通常是因为不同的浏览器对同一段代码有不同的解析,造成页面显示不统一的情况。

1423
来自专栏编程

React 深度编程:受控组件与非受控组件

作者:司徒正美 https://segmentfault.com/a/1190000012458996 受控组件与非受控组件在官网与国内网上的资料都不多,有些人...

2617
来自专栏施炯的IoT开发专栏

《101 Windows Phone 7 Apps》读书笔记-BOOK READER

课程内容 Ø编页 ØList Picker Ø拉伸List Box 控件中的条目     本章的Book Reader应用程序为Jane Austen的经典小...

1856
来自专栏Android群英传

onTouchEvent(二) 使用Scroller实现黏性滑动的ScrollView

853
来自专栏数据小魔方

符号的艺术

今天跟大家聊聊ppt中的符号艺术——项目符号! ▼▼▼ 大家在word排版过程中,如果内容很长并且逻辑性很强的话,都会下意识的使用项目符号,使得文章结构分明,逻...

3785

扫码关注云+社区

领取腾讯云代金券