python用turtle画小猪佩奇_turtle作图:用turtle画一个小猪佩奇(详解!)
之前的一篇文章大致说了一下turtle这个模块的基本操作,不知道的朋友可以去看看,真的超级简单:python:turtle作图基础。
准备用turtle来画一个网红猪--小猪佩奇。
在这之前,我们先聊一聊circle()这个方法和色彩的填充。
circle()
circle的基本用法是:turtle.circle(radius, extent=None, steps=None)
它有三个参数,第一个是半径,第二个extent是弧度,steps表示的是圆的n阶多边形。
在这里需要注意的一点是,比如,turtle.circle(10),它画圆的方式是:以“小海龟”的方向为初始方向,然后逆时针画出一个圆形;如果你这样写turtle.circle(10,-30),它将会以海龟的方向的反方向画出一个弧度为30的弧,也就是逆时针的。
所以,如果你要控制圆的方向,需要注意“海龟”的方向和弧度的方向,以及画圆时,是以顺时针的方向画圆的,这三点。
举个例子:
import turtle as t t.circle(-10) t.circle(10) t.mainloop() 它的结果是
它是先画顺时针的圆,然后画逆时针的圆。
再如:
import turtle as t t.seth(180)#海龟初始的方向为西 t.circle(-10) t.circle(10) t.mainloop() 结果为:
它会先画上圆,然后再画下圆。因为带负号,所以为顺时针。
那么,如果我们想让它变为顺时针画下圆,应该怎么做呢?代码如下:import turtle as t
t.seth(180)#海龟初始的方向为西
t.circle(-10)
t.circle(10,-360)
t.mainloop()
,这样的话,就会在画下圆的时候,用顺时针的方向来画。
色彩的填充
在使用turtle.begin_fill()和turtle.end_fill()进行色彩填充的时候,需要注意turtle会自动确定封闭图形对一个封闭图形进行填充
完成上面这一部分,以及之前的那篇文章的内容,就可以开始画小猪佩奇了。 绘制小猪佩奇import turtle as t
t.pensize(4)
t.hideturtle()
t.colormode(255)#设置画笔大小为0-255
t.color((255,155,192),"pink")
t.setheading(-30)
t.pu()
t.goto(-100,100)
t.begin_fill()
t.pd()
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3)
t.fd(a)
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.setheading(0)
t.fd(10)
t.begin_fill()
t.pd()
t.circle(5)
t.color(160,82,45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255,155,192)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()
#头
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.pd()
t.begin_fill()
t.seth(0)
t.circle(-300,30)
t.circle(-100,60)
t.circle(-80,100)
t.circle(-150,20)
t.circle(-60,95)
t.seth(161)
t.circle(-300,15)
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
a=0.4
for i in range(60):
if 0<=i<30:
a=a+0.08
t.lt(3)
t.fd(a)
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
#耳机
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,56)
t.end_fill()
#眼睛
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
#腮
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
#嘴
t.color(239,69,19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30,40)
t.circle(40,80)
#身体
t.color("red",(255,99,71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
#手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
#脚
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
#尾巴
t.pensize(4)
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70,20)
t.circle(10,330)
t.circle(70,30)
t.mainloop()
最终结果:
其实这个挺简单的,把之前基本的语法知识了解一下就能掌握了。
全文结束,欢迎在评论区讨论~
python用turtle画小猪佩奇_turtle作图:用turtle画一个小猪佩奇(详解!)相关推荐
- python可以画动态图吗_matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
学习python的道路是漫长的,今天又遇到一个问题,所以想写下来自己的理解方便以后查看. 在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图.这是因为python可视 ...
- python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解
我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...
- python编写一个名片_详解Python做一个名片管理系统
名片管理系统有两个模块组成:cards_main.py和 cards_tools.py一个是主程序,另一个是封装增删改查函数的被调用程序 代码如下 cards_main.py #! /usr/bin/ ...
- 站长在线Python精讲:Python中集合的交集、并集、差集和对称差集运算方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中集合的交集.并集.差集和对称差集运算方法详解>.主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集. ...
- python串口数据分包_python TCP Socket的粘包和分包的处理详解
概述 在进行TCP Socket开发时,都需要处理数据包粘包和分包的情况.本文详细讲解解决该问题的步骤.使用的语言是Python.实际上解决该问题很简单,在应用层下,定义一个协议:消息头部+消息长度+ ...
- python gpu加速库比matlab快吗_Python之Unittest和Requests库详解
1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...
- python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...
- 全网最全的Windows下Anaconda2 / Anaconda3里Python语言实现定时发送微信消息给好友或群里(图文详解)...
不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序 ...
- python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
本文实例讲述了Python实现发送与接收邮件的方法.分享给大家供大家参考,具体如下: 一.发送邮件 这里实现给网易邮箱发送邮件功能: import smtplib import tkinter cla ...
- python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...
最新文章
- MySQL 怎么变快_如何让mysql索引更快一点
- centos yum 安装golang
- intellij中导入外部的依赖包+在当前的工程中使用
- SAP CRM One Order关于索引表CRMD_ORDER_INDEX的一些性能问题的分析
- 谷歌浏览器flash_谷歌浏览器不支持Flash Player的问题
- PyTorch系列 | 快速入门迁移学习
- NS2:undefined reference to `xxx' collect2: error: ld returned 1 exit status
- Redis 巧用数据类型实现亿级数据统计
- PHP substr_replace() 函数
- 【图像处理】《数字图像处理-冈萨雷斯》笔记
- 伺服电机常用参数设置_松下伺服电机一般都设置哪些参数
- re模块中group()与groups()用法
- 使用piranha搭建高可用LVS集群
- SQLserver管道的另一端无任何进程
- 在vue项目中插入视频
- 一影碎念,一场风花,浅吟低唱成悲曲:伤感日志
- git fetch总结
- 单片机执行指令过程详解
- 计算机职称考试入户,揭秘!2020年考什么职称更容易入户广州?
- Android 实现多种样式 item 列表
热门文章
- 性能测试,压力测试, 负载测试,稳定性测试的定义和区别
- mysql修改DBS里的ip地址_【翻译自mos文章】修改被DBControl监控的db(10gand11g)中dbsnm...
- STM32F103C8T6实验代码之NRF24L01P 多发一收
- 基于C-W节约算法的车辆路径规划问题的Java实现
- 机器人系统计算机控制技,计算机控制系统在机器人技术中的应用
- 智能车学习(十七)——舵机学习
- js的链式调用和流程控制(sleep)
- 我们的那些故事(写给1987—1990年出生的同学,希望您能够看看)
- 英特尔10nm难产原因_英特尔宣称10nm“ Tiger Lake”笔记本电脑处理器将“跨越式发展”...
- gyp ERR configure error gyp ERR stack Error: Command failed: C:....