用Python给 ‘额窝怂人’ 比心表白!

裸睡的猪

共 3554字,需浏览 8分钟

 ·

2021-05-19 22:13

作者 | 快快
来源 | 快学Python


每到各种节日,不少小伙伴们都会遇到这样一个世纪问题——怎么给女朋友/老婆一个与众不同的节日惊喜。

这不马上就又要到520了嘛,我们可以尝试用python给女朋友比心表白!就像下面这这样👇

下面快快就带大家来领略一下用Python表白的方式,让女朋友们感受一下IT人的浪漫。

Turtle基本参数

python的强大在于它有许多的强大的库,turtle是其中可以交互式的绘画的模块。也是很多提升初学者学习python乐趣的秘密法宝!

作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几行代码你就能实现绘画[1]

turtle是python自带的一个库,直接调用就可以了。

from turtle import *

然后接下来我们需要了解一下turtle的基本语句,为画图打好基础。

现在,我们尝试用上表中的命令来操作一下,看看turtle是怎么运动的。

from turtle import *

forward(200# 从当前画笔方向移动200
left(90# 逆时针移动90°
backward(200# 在当前画笔方向的反方向移动200
right(90# 顺时针移动90°
circle(200# 画一个半径为200的圆,圆心在画笔左边

运行后效果如下

可以看到,画笔按照我们的设想运动了起来。下面我们开始尝试自己简单模仿来画图啦

海龟画图

不过为了节省工作量,我们可以创建一些函数,这样就不用把很多基本代码写很多遍了。

def heart(x, y, size):
    go_to(x, y)
    left(150)
    begin_fill()
    forward(51*size)
    ring(150,size,0.3,'right')
    ring(210,size,0.786,'right')
    left(120)
    ring(210,size,0.786,'right')
    ring(150,size,0.3,'right')
    forward(51*size)
    end_fill()

比如,上面的代码就是构建了绘制心形的函数,单独测试一下效果。

成功画了一个心形,并填充了颜色。

剩下的我们就可以利用直线与曲线来依次绘制小人的头部、手臂和身体等。

#头部
color('black')
go_to(-22872)
pensize(3)
left(150)
ring(350,1,0.8,'right')

#手臂
left(150)
forward(70)
left(90)
forward(10)
ring(200,0.1,0.9,'right')
forward(10)
left(90)
forward(20)
ring(200,0.1,0.9,'right')
forward(10)
left(90)
ring(200,0.2,0.9,'right')
left(100)
left
forward(80)

当然,除了添加心形,还可以添加一些文字。如果大家想自定义文字,直接更改参数中的文字520就好。

# 添加文字
go_to(-3969)
write("520", align="left", font=("黑体"30"normal"))


猪哥亲自尝试,最终成果如下图所示👇


代码下载

如代码如下,复制到Pycharm直接运行即可,不需要安装其他库!复制后替换代码中的你想说的话即可!

# -*- coding: utf-8 -*-"""@author: kxpython
微信公众号: 快学Python"""

from turtle import *
speed(0)Turtle().screen.delay(0)
def go_to(x, y): up() goto(x, y) down() def ring(a,b,c,d): for i in range(a): forward(b) if d == 'right': right(c) else: left(c)
def heart(x, y, size): go_to(x, y) left(150) begin_fill() forward(51*size) ring(150,size,0.3,'right') ring(210,size,0.786,'right') left(120) ring(210,size,0.786,'right') ring(150,size,0.3,'right') forward(51*size) end_fill()
#头部color('black')go_to(-228, 72)pensize(3)left(150)ring(350,1,0.8,'right')
#手臂left(150)forward(70)left(90)forward(10)ring(200,0.1,0.9,'right')forward(10)left(90)forward(20)ring(200,0.1,0.9,'right')forward(10)left(90)ring(200,0.2,0.9,'right')left(100)leftforward(80)
#身体go_to(-228, 72)left(40)forward(40)ring(120,0.2,0.9,'left')
go_to(-219,52)right(95)forward(80)right(85)ring(205,0.1,0.9,'left')forward(40)left(90)forward(10)ring(200,0.1,0.9,'right')forward(10)left(90)forward(40)ring(205,0.1,0.9,'left')right(92)forward(90)
#左眼go_to(-217,155)fillcolor('black')begin_fill()circle(5)end_fill()
#右眼go_to(-169,158)fillcolor('black')begin_fill()circle(5)end_fill()
#微笑go_to(-210,132)right(180)ring(200,0.2,0.9,'left')
#腮红color('#ffa0a0')pensize(5)left(170)
go_to(-235, 135)forward(11)go_to(-225, 135)forward(11)go_to(-155, 140)forward(11)go_to(-165, 140)forward(11)
#比心setheading(0)heart(-35, 135, 0.10)setheading(0)heart(5, 150, 0.13)setheading(0)heart(52, 165, 0.15)

# 写字go_to(-39, 69)write("520", align="left", font=("黑体", 30, "normal"))
done()


参考资料

[1]

DC学习助手: 只要十分钟,python绘图神器turtle了解一下?

浏览 75
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报