使用python画个小猪佩奇的示例代码


Posted in Python onJune 06, 2018

使用python画个小猪佩奇的示例代码 

本原理

选好画板大小,设置好画笔颜色、粗细,定位好位置,依次画鼻子、头、耳朵、眼睛、腮、嘴、身体、手脚、尾巴,完事儿。

都知道,Turtle 是 Python 内置的一个比较有趣味的模块,俗称“海龟绘图”,它是基于 Tkinter 模块打造,提供一些简单的绘图工具。

在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。

所以,海龟作图也常被用作新手学习 Python 的一种方式。更丰富详细的功能及知识可以参考官方文档:

https://docs.python.org/3/library/turtle.html

from turtle import*
def nose(x,y):#鼻子
 penup()#提起笔
 goto(x,y)#定位
 pendown()#落笔,开始画
 setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
 begin_fill()#准备开始填充图形
 a=0.4
 for i in range(120):
  if 0<=i<30 or 60<=i<90:
   a=a+0.08
   left(3) #向左转3度
   forward(a) #向前走a的步长
  else:
   a=a-0.08
   left(3)
   forward(a)
 end_fill()#填充完成
 penup()
 setheading(90)
 forward(25)
 setheading(0)
 forward(10)
 pendown()
 pencolor(255,155,192)#画笔颜色
 setheading(10)
 begin_fill()
 circle(5)
 color(160,82,45)#返回或设置pencolor和fillcolor
 end_fill()
 penup()
 setheading(0)
 forward(20)
 pendown()
 pencolor(255,155,192)
 setheading(10)
 begin_fill()
 circle(5)
 color(160,82,45)
 end_fill()
def head(x,y):#头
 color((255,155,192),"pink")
 penup()
 goto(x,y)
 setheading(0)
 pendown()
 begin_fill()
 setheading(180)
 circle(300,-30)
 circle(100,-60)
 circle(80,-100)
 circle(150,-20)
 circle(60,-95)
 setheading(161)
 circle(-300,15)
 penup()
 goto(-100,100)
 pendown()
 setheading(-30)
 a=0.4
 for i in range(60):
  if 0<=i<30 or 60<=i<90:
   a=a+0.08
   lt(3) #向左转3度
   fd(a) #向前走a的步长
  else:
   a=a-0.08
   lt(3)
   fd(a)
 end_fill()
def ears(x,y): #耳朵
 color((255,155,192),"pink")
 penup()
 goto(x,y)
 pendown()
 begin_fill()
 setheading(100)
 circle(-50,50)
 circle(-10,120)
 circle(-50,54)
 end_fill()
 penup()
 setheading(90)
 forward(-12)
 setheading(0)
 forward(30)
 pendown()
 begin_fill()
 setheading(100)
 circle(-50,50)
 circle(-10,120)
 circle(-50,56)
 end_fill()
def eyes(x,y):#眼睛
 color((255,155,192),"white")
 penup()
 setheading(90)
 forward(-20)
 setheading(0)
 forward(-95)
 pendown()
 begin_fill()
 circle(15)
 end_fill()
 color("black")
 penup()
 setheading(90)
 forward(12)
 setheading(0)
 forward(-3)
 pendown()
 begin_fill()
 circle(3)
 end_fill()
 color((255,155,192),"white")
 penup()
 seth(90)
 forward(-25)
 seth(0)
 forward(40)
 pendown()
 begin_fill()
 circle(15)
 end_fill()
 color("black")
 penup()
 setheading(90)
 forward(12)
 setheading(0)
 forward(-3)
 pendown()
 begin_fill()
 circle(3)
 end_fill()
def cheek(x,y):#腮
 color((255,155,192))
 penup()
 goto(x,y)
 pendown()
 setheading(0)
 begin_fill()
 circle(30)
 end_fill()
def mouth(x,y): #嘴
 color(239,69,19)
 penup()
 goto(x,y)
 pendown()
 setheading(-80)
 circle(30,40)
 circle(40,80)
def setting():   #参数设置
 pensize(4)
 hideturtle()  #使乌龟无形(隐藏)
 colormode(255)  #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
 color((255,155,192),"pink")
 setup(840,500)
 speed(10)
def main():
 setting()   #画布、画笔设置
 nose(-100,100)  #鼻子
 head(-69,167)  #头
 ears(0,160)   #耳朵
 eyes(0,140)   #眼睛
 cheek(80,10)  #腮
 mouth(-20,30)  #嘴
 done()
if __name__ == '__main__':
 main()

总结

以上所述是小编给大家介绍的使用python画个小猪佩奇的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python使用递归解决全排列数字示例
Feb 11 Python
Python中类的继承代码实例
Oct 28 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python实现音乐下载的统计
Jun 20 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
python实现堆排序的实例讲解
Feb 21 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
Python编程源码报错解决方法总结经验分享
Oct 05 Python
python re模块的高级用法详解
Jun 06 #Python
Python实现的爬取网易动态评论操作示例
Jun 06 #Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 #Python
利用python如何处理百万条数据(适用java新手)
Jun 06 #Python
Python3实现的Mysql数据库操作封装类
Jun 06 #Python
python操作redis方法总结
Jun 06 #Python
目前最全的python的就业方向
Jun 05 #Python
You might like
php购物车实现代码
2011/10/10 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
js charAt的使用示例
2014/02/18 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
ES5和ES6中类的区别总结
2020/12/21 Javascript
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
python实现人民币大写转换
2018/06/20 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python找出因数与质因数的方法
2019/07/25 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
浅析Python 责任链设计模式
2020/09/11 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
几个SQL的面试题
2014/03/08 面试题
旅游项目开发策划书
2014/01/18 职场文书
单位介绍信范文
2014/01/18 职场文书
音乐教学反思
2014/02/02 职场文书
2014中考励志标语
2014/06/05 职场文书
小学生成绩单评语
2014/12/31 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android