520,Python 教你花式表白小姐姐
文 | 豆豆
来源:Python 技术「ID: pythonall」
一年一度的 520 又到了,不知今年的你是否脱单了呢?如果还没有的话,不要方,单身 dog 千千万。
虽说缘分是非常奇妙的,不可强求,但遇见了心动的就不要错过,主动点才会有故事,不然最后只剩遗憾空留心中。喜欢就要大声说出来,在今天这个浪漫的日子里,派森酱带你花式表白小姐姐。
今天我们准备用 turtle 画一个丘比特之箭,先来看看我们最终实现的效果图。
安装
使用 turtle 之前需要先安装,直接使用 pip 安装即可。
pip install turtle
使用之前需要先将相应模块引入我们的程序。
import turtle as t
爱心
需要先做一些基础的设置。
def init():
t.speed(2)
t.pensize(2)
t.screensize(480, 360)
t.color('red', 'red')
t.bgcolor('white')
首先,我们先画下丘比特之箭的右半部分,右半部分主要是一个 V 字形图案外加一个多半圆,因为两颗心是叠加在一起的,所以右边只画一多半圆就可以了,不需要画全。
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 字形加上两个多半圆即可。
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 的样子。来看下效果。
两颗心已经部分重叠起来了,最后我们用丘比特之箭将两颗相爱的心嵌入其中就大功告成了。
箭
很多人画箭就直接用一条直线代替过去了,那怎么能叫丘比特之箭呢,派森酱提醒小伙伴们对待爱情要认真、用心哦。
箭由箭镞、箭杆、箭羽三部分组成,我们要全部画出来才逼真。
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()
最后我们写一个入口函数,将这些画不同部位的函数给封装起来。代码如下;
if __name__ == '__main__':
init()
draw_heart_right()
draw_heart_left()
draw_arrow()
t.hideturtle()
t.done()
最终效果如下:
很简单有木有,轻松三步实现丘比特之箭,快去后台获取源码 run 起来吧,有心的读者还可以加上自己的爱情宣言哦。
总结
今天我们借用 turtle 库来花式告白小姐姐,代码很简单,理清位置、朝向、以及运动模式即可轻松驾驭。
温馨提醒:女朋友可不是靠各种花式表白方式追来的哦,更多是靠日常点点滴滴的真心相待,毕竟日久见人心嘛。
最后祝各位单身的小伙伴们今天都可以成功脱单,祝各位小情侣们早日成婚,祝各位有家室的幸福快乐。
PS:公号内回复 :Python,即可进入Python 新手学习交流群,一起100天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】