涨姿势|看我如何用 Python 哄女朋友开心

封面

女朋友特别喜欢小猪佩奇,看到小猪佩奇的玩偶就走不动了,刚好最近研究了下 Python 的 turtle 库,简言之这个库就是用来在电脑作画的,你可以操控一只画笔,包括设置其颜色速度等参数,还可以控制其位置和移动方向,于是我就突发奇想能不能用 turtle 来画一只小猪佩奇来哄女朋友开心呢,来跟着派森酱一起上手操作吧。

先来看下我们最终实现的效果图。

安装

作画之前首先需要将我们用到的库安装一下,超简单,使用 pip 进行安装即可。

1
pip3 install turtle

分析

小猪佩奇看起来简单,实际画起来还是比较复杂的,我们将分成鼻子、头、眼睛、耳朵、嘴、身体、手、脚、尾巴等几部分来分别作画。

老规矩,先引入今天要用到的库 turtle 并做一些基础设置

1
2
3
4
5
6
7
8
9
import turtle as t

def setting():  # 参数设置
    t.pensize(4)
    t.hideturtle()
    t.colormode(255)
    t.color((255, 155, 192), "pink")
    t.setup(840, 500)
    t.speed(10)

五官

第一步当然是先将鼻子、眼睛、耳朵、嘴巴等五官画出来啦。

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
37
def nose(x, y):  # 鼻子
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.setheading(-30)
    ... # 省略部分代码

def head(x, y):  # 头
    t.color((255, 155, 192), "pink")
    t.penup()
    t.goto(x, y)
    t.setheading(0)
    ... # 省略部分代码

def ears(x, y):  # 耳朵
    t.color((255, 155, 192), "pink")
    t.penup()
    t.goto(x, y)
    t.pendown()
    ... # 省略部分代码

def eyes(x, y):  # 眼睛
    t.color((255, 155, 192), "white")
    t.penup()
    t.setheading(90)
    t.forward(-20)
    ... # 省略部分代码

def cheek(x, y):  # 腮
    t.color((255, 155, 192))
    ... # 省略部分代码

def mouth(x, y):  # 嘴
    t.color(239, 69, 19)
    t.penup()
    t.goto(x, y)
    ... # 省略部分代码

来看下效果。

身体

五官画完之后就是身体和肢体了,其实也不复杂,主要是计算好其对应的位置就可以了。

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
def body(x, y):  # 身体
    t.color("red", (255, 99, 71))
    t.penup()
    t.goto(x, y)
    t.pendown()
    ... # 省略部分代码

def hands(x, y):  # 手
    t.color((255, 155, 192))
    t.penup()
    t.goto(x, y)
    t.pendown()
    ... # 省略部分代码

def foot(x, y):  # 脚
    t.pensize(10)
    t.color((240, 128, 128))
    t.penup()
    t.goto(x, y)    
    ... # 省略部分代码

def tail(x, y):  # 尾巴
    t.pensize(4)
    t.color((255, 155, 192))
    t.penup()
    t.goto(x, y)    
    ... # 省略部分代码

再来看下效果,有没有觉得非常像呢。

入口函数

最后将各部位函数整合到一个入口函数即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def main():
    setting()
    nose(-100, 100)
    head(-69, 167)
    ears(0, 160)
    eyes(0, 140)
    cheek(80, 10)
    mouth(-20, 30)
    body(-32, -8)
    hands(-56, -45)
    foot(2, -177)
    tail(148, -155)
    t.done()

if __name__ == '__main__':
    main()

至此,大功告成。

总结

今天派森酱带大家一起将小猪佩奇用程序画了出来,由于篇幅有限文中就省略了部分代码,需要的小伙伴根据文末的方式自行获取即可。其实小伙伴们完全可以发挥自己的想象力,有时候惊喜不需要花费很多钱,只需要用心一点就可以让另一半开心很久,祝大家天天开心啦~

示例代码:(https://github.com/JustDoPython/python-examples/tree/master/doudou/2021-10-21-pig)

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