python实战之一步一步教你绘制小猪佩奇


Posted in Python onApril 22, 2021

一、定义全局属性

1# 导入turtle绘图库
 2
 3import turtle as tle
 4
 5class peppa_turtle:
 6
 7    # 初始化全局属性
 8
 9    def __init__(self):
10
11        self.tle = tle
12
13        # #全局画笔属性设置
14
15        # 设置画笔的大小
16
17        self.tle.pensize(4)
18
19        # 设置GBK颜色范围为0-255
20
21        self.tle.colormode(255)
22
23        # 设置画笔颜色和填充颜色
24
25        self.tle.color((255, 155, 192), "pink")
26
27        # 设置主窗口的大小为800*500
28
29        self.tle.setup(800, 600)
30
31        # 设置画笔速度为1
32
33        self.tle.speed(1)

二、定义鼻子绘制函数

1# 绘制小猪佩奇的鼻子
  2
  3    def draw_nose(self):
  4
  5        # 提笔
  6
  7        self.tle.pu()
  8
  9        # 画笔前往坐标(-100,100)
 10
 11        self.tle.goto(-100, 100)
 12
 13        # 下笔
 14
 15        self.tle.pd()
 16
 17        # 笔的角度为-30°
 18
 19        self.tle.seth(-30)
 20
 21        # 外形填充的开始标志
 22
 23        self.tle.begin_fill()
 24
 25        a = 0.4
 26
 27        for i in range(120):
 28
 29            if 0 <= i < 30 or 60 <= i < 90:
 30
 31                a = a + 0.08
 32
 33                # 向左转3度
 34
 35                self.tle.lt(3)
 36
 37                # 向前走a的步长
 38
 39                self.tle.fd(a)
 40
 41            else:
 42
 43                a = a - 0.08
 44
 45                self.tle.lt(3)
 46
 47                self.tle.fd(a)
 48
 49        # 依据轮廓填充
 50
 51        self.tle.end_fill()
 52
 53        # 提笔
 54
 55        self.tle.pu()
 56
 57        # 笔的角度为90度
 58
 59        self.tle.seth(90)
 60
 61        # 向前移动25
 62
 63        self.tle.fd(25)
 64
 65        # 转换画笔的角度为0
 66
 67        self.tle.seth(0)
 68
 69        self.tle.fd(10)
 70
 71        self.tle.pd()
 72
 73        # 设置画笔颜色
 74
 75        self.tle.pencolor(255, 155, 192)
 76
 77        self.tle.seth(10)
 78
 79        self.tle.begin_fill()
 80
 81        # 画一个半径为5的圆
 82
 83        self.tle.circle(5)
 84
 85        # 设置画笔和填充颜色
 86
 87        self.tle.color(160, 82, 45)
 88
 89        self.tle.end_fill()
 90
 91        self.tle.pu()
 92
 93        self.tle.seth(0)
 94
 95        self.tle.fd(20)
 96
 97        self.tle.pd()
 98
 99        self.tle.pencolor(255, 155, 192)
100
101        self.tle.seth(10)
102
103        self.tle.begin_fill()
104
105        self.tle.circle(5)
106
107        self.tle.color(160, 82, 45)
108
109        self.tle.end_fill()

三、定义头部绘制函数

1# 绘制小猪佩奇的头
 2
 3    def draw_head(self):
 4
 5        self.tle.color((255, 155, 192), "pink")
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(41)
12
13        self.tle.seth(0)
14
15        self.tle.fd(0)
16
17        self.tle.pd()
18
19        self.tle.begin_fill()
20
21        self.tle.seth(180)
22
23        # 顺时针画一个半径为300,圆心角为30°的园
24
25        self.tle.circle(300, -30)
26
27        self.tle.circle(100, -60)
28
29        self.tle.circle(80, -100)
30
31        self.tle.circle(150, -20)
32
33        self.tle.circle(60, -95)
34
35        self.tle.seth(161)
36
37        self.tle.circle(-300, 15)
38
39        self.tle.pu()
40
41        self.tle.goto(-100, 100)
42
43        self.tle.pd()
44
45        self.tle.seth(-30)
46
47        a = 0.4
48
49        for i in range(60):
50
51            if 0 <= i < 30 or 60 <= i < 90:
52
53                a = a + 0.08
54
55                # 向左转3度
56
57                self.tle.lt(3)
58
59                # 向前走a的步长
60
61                self.tle.fd(a)
62
63            else:
64
65                a = a - 0.08
66
67                self.tle.lt(3)
68
69                self.tle.fd(a)
70
71        self.tle.end_fill()

四、定义耳朵绘制函数

1# 绘制小猪佩奇的耳朵
 2
 3    def draw_ear(self):
 4
 5        self.tle.color((255, 155, 192), "pink")
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(-7)
12
13        self.tle.seth(0)
14
15        self.tle.fd(70)
16
17        self.tle.pd()
18
19        self.tle.begin_fill()
20
21        self.tle.seth(100)
22
23        self.tle.circle(-50, 50)
24
25        self.tle.circle(-10, 120)
26
27        self.tle.circle(-50, 54)
28
29        self.tle.end_fill()
30
31        self.tle.pu()
32
33        self.tle.seth(90)
34
35        self.tle.fd(-12)
36
37        self.tle.seth(0)
38
39        self.tle.fd(30)
40
41        self.tle.pd()
42
43        self.tle.begin_fill()
44
45        self.tle.seth(100)
46
47        self.tle.circle(-50, 50)
48
49        self.tle.circle(-10, 120)
50
51        self.tle.circle(-50, 56)
52
53        self.tle.end_fill()

五、定义眼睛绘制函数

1# 绘制小猪佩奇的眼睛
 2
 3    def draw_eye(self):
 4
 5        self.tle.color((255, 155, 192), "white")
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(-20)
12
13        self.tle.seth(0)
14
15        self.tle.fd(-95)
16
17        self.tle.pd()
18
19        self.tle.begin_fill()
20
21        self.tle.circle(15)
22
23        self.tle.end_fill()
24
25        self.tle.color("black")
26
27        self.tle.pu()
28
29        self.tle.seth(90)
30
31        self.tle.fd(12)
32
33        self.tle.seth(0)
34
35        self.tle.fd(-3)
36
37        self.tle.pd()
38
39        self.tle.begin_fill()
40
41        self.tle.circle(3)
42
43        self.tle.end_fill()
44
45        self.tle.color((255, 155, 192), "white")
46
47        self.tle.pu()
48
49        self.tle.seth(90)
50
51        self.tle.fd(-25)
52
53        self.tle.seth(0)
54
55        self.tle.fd(40)
56
57        self.tle.pd()
58
59        self.tle.begin_fill()
60
61        self.tle.circle(15)
62
63        self.tle.end_fill()
64
65        self.tle.color("black")
66
67        self.tle.pu()
68
69        self.tle.seth(90)
70
71        self.tle.fd(12)
72
73        self.tle.seth(0)
74
75        self.tle.fd(-3)
76
77        self.tle.pd()
78
79        self.tle.begin_fill()
80
81        self.tle.circle(3)
82
83        self.tle.end_fill()

六、定义腮绘制函数

1# 绘制小猪佩奇的腮
 2
 3    def draw_cheek(self):
 4
 5        self.tle.color((255, 155, 192))
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(-95)
12
13        self.tle.seth(0)
14
15        self.tle.fd(65)
16
17        self.tle.pd()
18
19        self.tle.begin_fill()
20
21        self.tle.circle(30)
22
23        self.tle.end_fill()

定义嘴巴绘制函数

1# 绘制小猪佩奇的嘴
 2
 3    def draw_mouth(self):
 4
 5        self.tle.color(239, 69, 19)
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(15)
12
13        self.tle.seth(0)
14
15        self.tle.fd(-100)
16
17        self.tle.pd()
18
19        self.tle.seth(-80)
20
21        self.tle.circle(30, 40)
22
23        self.tle.circle(40, 80)

七、定义身体绘制函数

1# 绘制小猪佩奇的身体
 2
 3    def draw_body(self):
 4
 5        self.tle.color("red", (255, 99, 71))
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(-20)
12
13        self.tle.seth(0)
14
15        self.tle.fd(-78)
16
17        self.tle.pd()
18
19        self.tle.begin_fill()
20
21        self.tle.seth(-130)
22
23        self.tle.circle(100, 10)
24
25        self.tle.circle(300, 30)
26
27        self.tle.seth(0)
28
29        self.tle.fd(230)
30
31        self.tle.seth(90)
32
33        self.tle.circle(300, 30)
34
35        self.tle.circle(100, 3)
36
37        self.tle.color((255, 155, 192), (255, 100, 100))
38
39        self.tle.seth(-135)
40
41        self.tle.circle(-80, 63)
42
43        self.tle.circle(-150, 24)
44
45        self.tle.end_fill()

八、定义手绘制函数

1# 绘制小猪佩奇的手
 2
 3    def draw_hand(self):
 4
 5        self.tle.color((255, 155, 192))
 6
 7        self.tle.pu()
 8
 9        self.tle.seth(90)
10
11        self.tle.fd(-40)
12
13        self.tle.seth(0)
14
15        self.tle.fd(-27)
16
17        self.tle.pd()
18
19        self.tle.seth(-160)
20
21        self.tle.circle(300, 15)
22
23        self.tle.pu()
24
25        self.tle.seth(90)
26
27        self.tle.fd(15)
28
29        self.tle.seth(0)
30
31        self.tle.fd(0)
32
33        self.tle.pd()
34
35        self.tle.seth(-10)
36
37        self.tle.circle(-20, 90)
38
39        self.tle.pu()
40
41        self.tle.seth(90)
42
43        self.tle.fd(30)
44
45        self.tle.seth(0)
46
47        self.tle.fd(237)
48
49        self.tle.pd()
50
51        self.tle.seth(-20)
52
53        self.tle.circle(-300, 15)
54
55        self.tle.pu()
56
57        self.tle.seth(90)
58
59        self.tle.fd(20)
60
61        self.tle.seth(0)
62
63        self.tle.fd(0)
64
65        self.tle.pd()
66
67        self.tle.seth(-170)
68
69        self.tle.circle(20, 90)

九、定义脚绘制函数

1# 绘制小猪佩奇的脚
 2
 3    def draw_foot(self):
 4
 5        self.tle.pensize(10)
 6
 7        self.tle.color((240, 128, 128))
 8
 9        self.tle.pu()
10
11        self.tle.seth(90)
12
13        self.tle.fd(-75)
14
15        self.tle.seth(0)
16
17        self.tle.fd(-180)
18
19        self.tle.pd()
20
21        self.tle.seth(-90)
22
23        self.tle.fd(40)
24
25        self.tle.seth(-180)
26
27        self.tle.color("black")
28
29        self.tle.pensize(15)
30
31        self.tle.fd(20)
32
33        self.tle.pensize(10)
34
35        self.tle.color((240, 128, 128))
36
37        self.tle.pu()
38
39        self.tle.seth(90)
40
41        self.tle.fd(40)
42
43        self.tle.seth(0)
44
45        self.tle.fd(90)
46
47        self.tle.pd()
48
49        self.tle.seth(-90)
50
51        self.tle.fd(40)
52
53        self.tle.seth(-180)
54
55        self.tle.color("black")
56
57        self.tle.pensize(15)
58
59        self.tle.fd(20)

十、定义尾巴绘制函数

1# 绘制小猪佩奇的尾巴
 2
 3    def draw_tail(self):
 4
 5        self.tle.pensize(4)
 6
 7        self.tle.color((255, 155, 192))
 8
 9        self.tle.pu()
10
11        self.tle.seth(90)
12
13        self.tle.fd(70)
14
15        self.tle.seth(0)
16
17        self.tle.fd(95)
18
19        self.tle.pd()
20
21        self.tle.seth(0)
22
23        self.tle.circle(70, 20)
24
25        self.tle.circle(10, 330)
26
27        self.tle.circle(70, 30)

十一、定义手动结束函数

1# 手动结束绘制
2    def exec_end(self):
3        while True:
4            # 手动结束程序运行
5            str = input("输入exit()结束:")
6            if 'exit()' == str:
7                print('绘制完毕')
8                break

到此这篇关于python实战之一步一步教你绘制小猪佩奇的文章就介绍到这了,更多相关python绘制小猪佩奇内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
python继承和抽象类的实现方法
Jan 14 Python
Python的Flask框架中@app.route的用法教程
Mar 31 Python
初步讲解Python中的元组概念
May 21 Python
python实现文本文件合并
Dec 29 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
python 破解加密zip文件的密码
python入门之算法学习
Apr 22 #Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
You might like
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
javascript简单实现图片预加载
2014/12/03 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JS中的const命令你真懂它吗
2020/03/08 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python安装sklearn模块的方法详解
2020/11/28 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
拾金不昧的表扬信
2014/01/16 职场文书
演讲稿的写法
2014/05/19 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
清明祭英烈活动总结
2015/05/11 职场文书