一年一度的 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 库来花式告白小姐姐,代码很简单,理清位置、朝向、以及运动模式即可轻松驾驭。
温馨提醒:女朋友可不是靠各种花式表白方式追来的哦,更多是靠日常点点滴滴的真心相待,毕竟日久见人心嘛。
最后祝各位单身的小伙伴们今天都可以成功脱单,祝各位小情侣们早日成婚,祝各位有家室的幸福快乐。