用python3 画 小猪佩奇

python3 中 有一个 turtle , 就是乌龟,原生的库, 画一下基本的平面图形还是可以的.

下面简单介绍 一下turtle库常用的方法:

turtle.circle(radius, extent=None, steps=None)描述:以给定半径画圆参数:radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;extent(弧度) (optional);steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。举例:circle(50) # 整圆;circle(50,steps=3) # 三角形;circle(120, 180) # 半圆

turtle.color

turtle.color(*args)
返回或设置画笔颜色和填充颜色。允许多种输入格式。使用如下 0 至 3 个参数:color()
返回以一对颜色描述字符串或元组表示的当前画笔颜色和填充颜色,两者可分别由 pencolor() 和 fillcolor() 返回。
color(colorstring), color((r,g,b)), color(r,g,b)
输入格式与 pencolor() 相同,同时设置填充颜色和画笔颜色为指定的值。
color(colorstring1, colorstring2), color((r1,g1,b1), (r2,g2,b2))
相当于 pencolor(colorstring1) 加 fillcolor(colorstring2),使用其他输入格式的方法也与之类似。
如果 turtleshape 为多边形,该多边形轮廓与填充也使用新设置的颜色。>>> turtle.color("red", "green")
>>> turtle.color()
('red', 'green')
>>> color("#285078", "#a0c8f0")
>>> color()
((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))

效果图如下:

完整代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Time    : 2019/1/19 10:33
@File    : peppapig.py
@Author  : frank.chang@shoufuyou.comhttps://docs.python.org/zh-cn/3/library/turtle.html
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.color
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.write
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.pencolor
https://mp.weixin.qq.com/s/bdTK4HrAw5sNgIfAzP-F8g
"""import turtledef nose(x, y):  # 鼻子turtle.penup()  # 提起笔turtle.goto(x, y)  # 定位turtle.pendown()  # 落笔,开始画# 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)turtle.setheading(-30)turtle.begin_fill()  # 准备开始填充图形a = 0.4for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08turtle.left(3)  # 向左转3度turtle.forward(a)  # 向前走a的步长else:a = a - 0.08turtle.left(3)turtle.forward(a)turtle.end_fill()  # 填充完成turtle.penup()turtle.setheading(90)turtle.forward(25)turtle.setheading(0)turtle.forward(10)turtle.pendown()turtle.pencolor(255, 155, 192)  # 画笔颜色turtle.setheading(10)turtle.begin_fill()turtle.circle(5)turtle.color(160, 82, 45)  # 返回或设置pencolor和fillcolorturtle.end_fill()turtle.penup()turtle.setheading(0)turtle.forward(20)turtle.pendown()turtle.pencolor(255, 155, 192)turtle.setheading(10)turtle.begin_fill()turtle.circle(5)turtle.color(160, 82, 45)turtle.end_fill()def head(x, y):  # 头turtle.color((255, 155, 192), "pink")turtle.penup()turtle.goto(x, y)turtle.setheading(0)turtle.pendown()turtle.begin_fill()turtle.setheading(180)turtle.circle(300, -30)turtle.circle(100, -60)turtle.circle(80, -100)turtle.circle(150, -20)turtle.circle(60, -95)turtle.setheading(161)turtle.circle(-300, 15)turtle.penup()turtle.goto(-100, 100)turtle.pendown()turtle.setheading(-30)a = 0.4for i in range(60):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08turtle.lt(3)  # 向左转3度turtle.fd(a)  # 向前走a的步长else:a = a - 0.08turtle.lt(3)turtle.fd(a)turtle.end_fill()def cheek(x, y):  # 腮# 深红色turtle.color((255, 155, 192))turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.setheading(0)turtle.begin_fill()turtle.circle(25)turtle.end_fill()def mouth(x, y):  # 嘴# 保存画笔的属性pen = turtle.pen()turtle.color(239, 69, 19)turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.setheading(-80)turtle.circle(30, 40)turtle.circle(40, 80)# 还原画笔属性turtle.pen(pen)def setting():  # 参数设置turtle.pensize(5)turtle.showturtle()  # 使乌龟无形(隐藏)turtle.colormode(255)  # 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内turtle.color((255, 155, 192), "pink")# turtle.setup(840, 1200)# 设置屏幕大小,或者比例turtle.setup(width=0.35, height=1.0)turtle.speed("normal")def init_pen():turtle.pensize(5)turtle.showturtle()# 画笔主题色# 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内turtle.colormode(255)turtle.color((255, 155, 192), "pink")def show_coordinate(length: int = 1000):"""显示 坐标系length * length 坐标系  30 * 30:return:"""turtle.penup()turtle.home()half = length // 2# 设置 朝向东turtle.setheading(0)turtle.pensize(1)turtle.color('black')# 拿起笔开始画x 轴turtle.penup()turtle.backward(half)# 放下笔turtle.down()# x 轴# turtle.forward(length)print_dot(length)# 开始画y轴turtle.penup()turtle.home()turtle.goto(0, -half)# 设置 朝向turtle.setheading(90)# 放下笔turtle.down()print_dot(length)# turtle.forward(length)def print_dot(length):""":param length:int 长度:return:"""i = 0# 标尺的 单位, 10 个像素打一个点step = 10turtle.color('black')while i <= length:turtle.forward(step)turtle.dot(3, "blue")i = i + stepdef words(x=0, y=0):"""打印我是 佩奇:param x::param y::return:"""turtle.penup()turtle.goto(x, y)print(f"turtle.position():{turtle.position()}")turtle.down()turtle.color("violet")turtle.write("小猪佩奇,我就是佩奇呢", font=('Arial', 40, 'normal'), align="center")print('write down ..')def ear(x=0, y=0):# 拿笔 走到 x,y 点上turtle.penup()turtle.goto(x, y)turtle.down()# eastturtle.setheading(0)turtle.left(70)turtle.color((255, 155, 192), "pink")turtle.begin_fill()  # 准备开始填充图形turtle.forward(40)# 画个半圆turtle.circle(15, extent=180)# 转回来走直接turtle.forward(44)pensize = turtle.pen().get('pensize')turtle.pensize(1)turtle.setposition(x, y)turtle.end_fill()# 恢复画笔的大小turtle.pensize(pensize)def right_ear(x=0, y=0):"""右边的耳朵大概 位置  (80,130):return:"""# 拿笔 走到 x,y 点上turtle.penup()turtle.goto(x, y)turtle.down()turtle.setheading(0)turtle.left(60)turtle.color((255, 155, 192), "pink")turtle.begin_fill()  # 准备开始填充图形turtle.forward(40)# 画个半圆turtle.circle(15, extent=180)# 转回来走直接turtle.forward(44)pensize = turtle.pen().get('pensize')turtle.pensize(1)turtle.setposition(x, y)turtle.end_fill()# 恢复画笔的大小turtle.pensize(pensize)def two_ears():"""两个可爱的耳朵:return:"""# 左边的耳朵ear(x=25, y=153)right_ear(x=80, y=130)def eye(x=0, y=0):turtle.penup()turtle.goto(x, y)print(f"postion:{turtle.position()}")turtle.down()# 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0..cmode范围内turtle.colormode(255)turtle.color((255, 155, 192), "pink")# 开始画圆print(f"before position:{turtle.position()}")turtle.begin_fill()turtle.circle(15)turtle.color("white")turtle.end_fill()print(f"after position:{turtle.position()}")# 调整 里面圆的位置,画圆turtle.begin_fill()x, y = turtle.position()x, y = x + 8, y - 1# 画眼珠turtle.penup()turtle.goto(x, y)turtle.down()print(f"turle_position:{turtle.position()}")turtle.color("black")turtle.circle(2)turtle.end_fill()def two_eyes():"""画两个眼睛:return:"""init_pen()eye(x=0, y=130)x, y = turtle.position()# right eyeeye(x=x + 45, y=y - 20)def two_hands():"""two hands# left hand  (-25,-35)right hand (112,-30):return:"""turtle.penup()turtle.goto((-27 + 2, -35))turtle.down()# southturtle.setheading(270)turtle.right(60)# left handturtle.forward(45)turtle.backward(17)# 画第二个 手指turtle.right(45)turtle.forward(13)turtle.backward(13)# 画第三个手指turtle.setheading(270)turtle.right(15)turtle.forward(10)# right hand (112,-30)turtle.penup()turtle.goto((112, -30))turtle.down()# direction southturtle.setheading(270)turtle.left(60)turtle.forward(45)turtle.backward(17)#  # 画第二个 手指turtle.left(45)turtle.forward(13)turtle.backward(13)# 画第三个手指turtle.setheading(270)turtle.left(15)turtle.forward(10)print('two hands finished.')## turtle.penup()# turtle.home()# turtle.hideturtle()passdef leg(x=0, y=0):"""腿和 脚 一起画吧:param x::param y::return:"""# 保存画笔pen = turtle.pen()# 把比调整到x,y 点上.turtle.penup()turtle.goto(x, y)turtle.down()# turtle.hideturtle()# southturtle.setheading(270)turtle.pensize(10)turtle.forward(43)# one footturtle.color("black")turtle.pensize(1)# 开始画鞋子# westturtle.setheading(180)# 准备填充turtle.begin_fill()turtle.right(5)turtle.forward(30)turtle.circle(6, extent=188)turtle.forward(30)turtle.circle(4, extent=190)# 填充完成turtle.end_fill()# 还原画笔turtle.pen(pen)def two_legs():"""两只腿:return:"""leg(x=10, y=-137)leg(x=80, y=-137)def skirt(x=0, y=0):"""裙子 小猪佩奇的 裙子(-20,-18)left --leftmiddle----leftmiddle_second---- middle ------ right_middle_second ---right_middle  --  right画笔颜色 要深红色 , 粗细 就是主题色 就可以了.:param left: (x,y)  元祖, 一个点的x,y 坐标:return:"""# 保存画笔的属性pen = turtle.pen()# 设置颜色turtle.color("#CD0000")turtle.pensize(5)turtle.showturtle()turtle.penup()turtle.goto(x, y)print(f"postion:{turtle.position()}")turtle.down()turtle.setheading(0)turtle.left(-100)# 开始填充 裙子的颜色turtle.begin_fill()# 左边斜线1turtle.forward(120)turtle.setheading(0)# 下面直线2turtle.forward(170)turtle.left(100)# 第三条线3turtle.forward(115 + 2 + 2)# 上面一条线4turtle.setheading(180)begin = (x, y)# 脸颊 的相对中间点middle = (50, -41)# 最后一条线.. 第四条线,要找到对应的弧度, 还是有一定的难度turtle.pensize(1)# turtle.color("black")# 用粉色 可以 盖住  多边形的缺陷turtle.color((255, 155, 192), "pink")left_middle = (12, -32)left_middle_second = (18 + 5, -32 - 2 - 2)right_middle = (80, -34)right_middle_second = (67, -39)turtle.goto(*right_middle)turtle.goto(*right_middle_second)turtle.goto(*middle)turtle.goto(*left_middle_second)turtle.goto(*left_middle)turtle.goto(*begin)turtle.setheading(180)# 裙子的颜色,设置画笔的颜色turtle.color("#CD5C5C")# 填充裙子完成turtle.end_fill()# 恢复画笔turtle.pen(pen)def tail(x=0, y=0):"""tail  尾巴  (120,110):return:"""turtle.penup()turtle.goto(x, y)turtle.down()# eastturtle.setheading(0)turtle.forward(10)turtle.circle(10, extent=145)turtle.setheading(225)turtle.circle(12, 195)def main():setting()  # 画布、画笔设置nose(-100, 100)  # 鼻子head(-69, 167)  # 头# 耳朵two_ears()# 眼睛two_eyes()cheek(85, 10)  # 腮mouth(-20, 30)  # 嘴skirt(x=-20, y=-18)# 两只小手two_hands()# 尾巴tail(x=120 + 3, y=-110)# 腿和脚two_legs()words(0, -300)  # 文字# show_coordinate(600)turtle.hideturtle()turtle.done()def test_one():turtle.home()print(f"position:{turtle.position()}")turtle.circle(50)print(f"position:{turtle.position()}")turtle.goto(100, 100)print(f"position:{turtle.position()}")turtle.circle(40)print(f"position:{turtle.position()}")turtle.done()if __name__ == '__main__':main()

参考文档

https://docs.python.org/zh-cn/3/library/turtle.html
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.color
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.write
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.pencolor
https://mp.weixin.qq.com/s/bdTK4HrAw5sNgIfAzP-F8g

分享快乐,留住感动 2019-01-20 22:35:28 --frank

用python3 画小猪佩奇相关推荐

  1. 用python画小猪佩奇动画片全集_教你用Python画小猪佩奇

    刚过去几个月大家票圈肯定都被"小猪佩奇"."社会人"等字样刷屏了,不知道啥时候开始小猪佩奇成立社会人的标志,我说不出个所以然.但是相信很多人和我一样没有看过这系 ...

  2. 怎么用python画房子_怎么用python画小猪佩奇

    最近社会猪可是火遍了大江南北,不蹭下热度可对不起它.见过手画的佩奇,见过用代码画的吗? 没有?那就来看我大显身手. 用python的turtle库来画小猪佩奇. 有人问:turtle难不难? 答曰:不 ...

  3. python画猪头_使用Python画小猪佩奇 社会人标配

    看了一些用python实现小猪佩奇画画的帖子,向自己实现下,以此记录. 社会人的标配是谁,当然是吹风机小猪佩奇身上纹. 我自己尝试画过小猪配齐但是感觉眼睛特别难画,画出来的猪头没有立体感,眼睛画不好整 ...

  4. 惊呆了!C语言也能画小猪佩奇?【附源码】社会我佩奇哥!

    社会我佩奇兄那么火,那么我们接下来就分享下如何用 C语言 画小猪佩奇 使用带符号距离场(signed distance field, SDF)表示圆形: 沿用这个方法表示形状,但这次我们想利用 ASC ...

  5. 使用canvas 代码画小猪佩奇

    使用canvas 代码画小猪佩奇 最近不是小猪佩奇很火嘛!!! 前几天 在知乎 看见了别人大佬用python写的 小猪佩奇,  顿时想学 ,可是 自己 没学过python(自己就好爬爬图片,,,,几个 ...

  6. 用Python画小猪佩奇

    最近社会猪可是火遍了大江南北,不蹭下热度可对不起它.见过手画的佩奇,见过用代码画的吗? 没有?那就来看我大显身手. 用python的turtle库来画小猪佩奇. 有人问:turtle难不难? 答曰:不 ...

  7. 用python画小猪佩奇的编码_如何用Python代码画小猪佩奇

    Python语言的功能太强大了,可以制作出很多想想的作品来,不信吗?用Python代码还可以画出小猪佩奇,代码其实很简单的,下面,就将几个关键步骤代码分享出来. 怎么用Python代码画小猪佩奇? 首 ...

  8. c语言画猪程序,C语言画小猪佩奇(转载)

    C语言画小猪佩奇 分享下如何用 C 语言画小猪佩奇 使用带符号距离场(signed distance field, SDF)表示圆形: 沿用这个方法表示形状,但这次我们想利用 ASCII 字符|/=\ ...

  9. python实现画小猪佩奇

    python实现画小猪佩奇 import turtle as tt.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),& ...

最新文章

  1. 用Vue的父子组件通信实现todolist的功能
  2. SAP UI5 testFLPService - local run will start mock server
  3. 向大厂看齐!为自己的程序增加自动转储的功能!
  4. android studio发布项目到github
  5. 安装ORACLE 时报错 /jre/1.4.2/lib/i386/libawt.so:
  6. python格式化字符串%r_Python语法速查:3.字符串格式化
  7. vue中解决three.js出现内存泄漏丢失上下文问题
  8. OpenCV-图像处理(09、模糊图像二)
  9. 冲刺高阶ADAS市场,毫米波雷达多元侦测整合成主流趋势
  10. 蓝桥杯质数c语言,2017年第八届蓝桥杯C/C++程序设计本科B组省赛 等差素数列(结果填空)(素数筛)...
  11. SIM900A 开发板连线图
  12. 乔布斯2005的演讲
  13. python 源代码 macd双底 高 低_利用Python实现MACD''顶底背离''形态,并实现自动化交易!...
  14. 中国哲学史(先秦部分)-------简答
  15. fedora30解决Rhythmbox MP3中文歌曲歌名乱码
  16. 使用Pycharm 连接内网服务器
  17. u盘里删除的文件可以恢复吗?分享解决方法
  18. 广义表的概念及存储表示
  19. 隐藏删除 gitbook Published with GitBook 的方法
  20. 【算法无用系列】AC自动机敏感词过滤

热门文章

  1. 数学猜想验证步骤_(完整版)小学数学“猜想-验证-归纳-运用”课堂教学模式
  2. python爬取文本中的成语_python爬虫的简单项目之爬取成语
  3. 详解ARM Cortex-M33处理器:性能/功耗/安全的最佳平衡
  4. UF超滤膜工艺在纯净水预处理中应用解析
  5. VGG网络在CIFAR_10和GID数据集上的Pytorch实现
  6. 计算机管理无法关闭,任务管理器无法关闭的解决方法
  7. 分享一个好用的照片格式转换器方法
  8. 【原作者:byxdaz】Android系统介绍与框架
  9. java http请求插件_Web测试调试插件RESTClient和HttpRequester
  10. Shopee折扣设置起来,让你的虾皮店铺成为焦点