520,Python 教你花式表白小姐姐

一年一度的 520 又到了,不知今年的你是否脱单了呢?如果还没有的话,不要方,单身 dog 千千万。

虽说缘分是非常奇妙的,不可强求,但遇见了心动的就不要错过,主动点才会有故事,不然最后只剩遗憾空留心中。喜欢就要大声说出来,在今天这个浪漫的日子里,派森酱带你花式表白小姐姐。

今天我们准备用 turtle 画一个丘比特之箭,先来看看我们最终实现的效果图。

安装

使用 turtle 之前需要先安装,直接使用 pip 安装即可。

1
pip install turtle

使用之前需要先将相应模块引入我们的程序。

1
import turtle as t

爱心

需要先做一些基础的设置。

1
2
3
4
5
6
def init():
    t.speed(2)
    t.pensize(2)
    t.screensize(480, 360)
    t.color('red', 'red')
    t.bgcolor('white')

首先,我们先画下丘比特之箭的右半部分,右半部分主要是一个 V 字形图案外加一个多半圆,因为两颗心是叠加在一起的,所以右边只画一多半圆就可以了,不需要画全。

1
2
3
4
5
6
7
8
9
def draw_heart_right():
    t.up()
    t.goto(50, 50)
    t.pendown()
    t.right(45)
    t.goto(100, 0)
    t.seth(45)
    t.fd(120)
    t.circle(50, 225)

来看下效果如何,貌似还不错,有些许神似。

接下来我们再在左半部分画一个完整的心,一个 V 字形加上两个多半圆即可。

1
2
3
4
5
6
7
8
9
10
def draw_heart_left():
    t.up()
    t.goto(0, 0)
    t.down()
    t.seth(45)
    t.fd(120)
    t.circle(50, 225)
    t.seth(90)
    t.circle(50, 225)
    t.fd(120)

圆的半径不能太大或者太小,不然看起来不协调,圆也不能画太满,我们这里画 225 度,也就是一个半圆多 1/4 的样子。来看下效果。

两颗心已经部分重叠起来了,最后我们用丘比特之箭将两颗相爱的心嵌入其中就大功告成了。

很多人画箭就直接用一条直线代替过去了,那怎么能叫丘比特之箭呢,派森酱提醒小伙伴们对待爱情要认真、用心哦。

箭由箭镞、箭杆、箭羽三部分组成,我们要全部画出来才逼真。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
def draw_arrow():
    t.up()
    t.seth(0)

    # 羽毛
    t.goto(-210, 40)
    t.pendown()
    t.goto(-215, 44)
    t.goto(-190, 49)
    t.goto(-175, 46)
    t.up()

    t.goto(-210, 40)
    t.pendown()
    t.goto(-213, 34)
    t.goto(-185, 39)
    t.goto(-175, 46)
    t.up()

    # 箭杆
    t.pendown()
    t.goto(0, 80)
    t.penup()
    t.goto(160, 110)
    t.pendown()
    t.goto(320, 140)
    
    # 箭羽
    t.left(160)
    t.begin_fill()
    t.fd(10)
    t.left(120)
    t.fd(10)
    t.left(120)
    t.fd(10)
    t.end_fill()

最后我们写一个入口函数,将这些画不同部位的函数给封装起来。代码如下;

1
2
3
4
5
6
7
if __name__ == '__main__':
    init()
    draw_heart_right()
    draw_heart_left()
    draw_arrow()
    t.hideturtle()
    t.done()

最终效果如下:

很简单有木有,轻松三步实现丘比特之箭,快去后台获取源码 run 起来吧,有心的读者还可以加上自己的爱情宣言哦。

总结

今天我们借用 turtle 库来花式告白小姐姐,代码很简单,理清位置、朝向、以及运动模式即可轻松驾驭。

温馨提醒:女朋友可不是靠各种花式表白方式追来的哦,更多是靠日常点点滴滴的真心相待,毕竟日久见人心嘛。

最后祝各位单身的小伙伴们今天都可以成功脱单,祝各位小情侣们早日成婚,祝各位有家室的幸福快乐。

代码地址

示例代码:https://github.com/JustDoPython/python-examples/tree/master/doudou/2020-05-17-520

Python Geek Tech wechat
欢迎订阅 Python 技术,这里分享关于 Python 的一切。