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执行shell获取硬件参数写入mysql的方法
Dec 29 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
详解Python if-elif-else知识点
Jun 11 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
python 破解加密zip文件的密码
python入门之算法学习
Apr 22 #Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
You might like
使用PHP维护文件系统
2006/10/09 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
3种vue组件的书写形式
2017/11/29 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
介绍一下write命令
2014/08/10 面试题
《颐和园》教学反思
2014/02/26 职场文书
推荐信格式要求
2014/05/09 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
模范教师事迹材料
2014/12/16 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Java Spring读取和存储详细操作
2022/08/05 Java/Android