Turtle库是Python语言中绘制图形的流行库。
就像一只小海龟,从一个坐标系统的原点(0,0)开始,横轴为x,纵轴为y,在一组函数指令的控制下在平面坐标系统中移动,从而沿着它的爬行路径画出一个图。

turtle绘图的基础知识

1.画布(canvas)

画布是turtle用于绘图区域,我们可以设置它的大小和初始位置。

设置画布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别对应画布的宽(单位像素), 高, 背景颜色。

如:

turtle.screensize(1000,800, "red")turtle.screensize() #返回默认大小(500, 400)turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:
width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

如:

turtle.setup(width=0.6,height=0.6)turtle.setup(width=800,height=800, startx=100, starty=100)

2. 画笔

画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

画笔的属性

画笔(画笔的属性,颜色、画线的宽度等)

turtle.pensize() # 设置画笔的宽度;turtle.pencolor()# 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。turtle.speed(speed)#设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

绘图命令

使用turtle绘图有着许多的命令代码,这些命令代码主要分为3种,分别为运动命令、画笔控制命令和全局控制命令。

画笔运动命令代码

turtle.forward(distance)—向当前画笔方向移动distance像素长度
turtle.backward(distance)—向当前画笔相反方向移动distance像素长度
turtle.right(degree)—顺时针移动degree° turtle.left(degree)—逆时针移动degree°
turtle.pendown()—移动时绘制图形,缺省时也为绘制 turtle.goto(x,y)—将画笔移动到坐标为x,y的位置
turtle.penup()—提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle()—画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 setx( )—将当前x轴移动到指定位置
sety( )—将当前y轴移动到指定位置 setheading(angle)—设置当前朝向为angle角度
home()—设置当前画笔位置为原点,朝向东 dot®—绘制一个指定直径和颜色的圆点

画笔控制命令代码

turtle.fillcolor(colorstring)—绘制图形的填充颜色 turtle.color(color1,
color2)—同时设置pencolor=color1, fillcolor=color2
turtle.filling()—返回当前是否在填充状态 turtle.begin_fill()—准备开始填充图形
turtle.end_fill()—填充完成 turtle.hideturtle()—隐藏画笔的turtle形状
turtle.showturtle()—显示画笔的turtle形状

全局控制命令代码

-turtle.clear()—清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset()—清空窗口,重置turtle状态为起始状态 turtle.undo()—撤销上一个turtle动作
turtle.isvisible()—返回当前turtle是否可见 stamp()—复制当前图形
turtle.write(s[,font=(“fontname”,font_size,“font_type”)])—文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

实例:

爱心

import turtle
turtle.fillcolor('red')
turtle.begin_fill()
turtle.left(40)
turtle.forward(100)
turtle.circle(50,210)
turtle.right(135)
turtle.circle(50,210)
turtle.forward(100)
turtle.end_fill()

效果图
向日葵

import turtle
turtle.speed(0)#画花秆
turtle.goto(0,-200) #画右边的叶子
turtle.goto(0,-150)
turtle.setheading(20)
turtle.fillcolor('green')
turtle.begin_fill()
turtle.right(30)
turtle.circle(120,60)
turtle.left(120)
turtle.circle(120,60)
turtle.end_fill()#画左边的叶子
turtle.goto(0,-130)
turtle.setheading(-200)
turtle.fillcolor('green')
turtle.begin_fill()
turtle.right(30)
turtle.circle(120,60)
turtle.left(120)
turtle.circle(120,60)
turtle.end_fill()# 画花瓣
turtle.goto(0,20)
turtle.setheading(0)
turtle.fillcolor('yellow')
for r in range(20,361,20):turtle.begin_fill()turtle.circle(40,20)   turtle.right(120)  turtle.circle(120,60)turtle.left(120)turtle.circle(120,60)turtle.setheading(r)    turtle.end_fill()# 画花瓣中心的花盘
turtle.goto(0,0)
turtle.fillcolor('orange')
turtle.setheading(0)
turtle.begin_fill()
turtle.circle(60)
turtle.end_fill()

效果图

python学习

如果你想学习Python,但是找不到学习路径和资源
欢迎加入新的交流【君羊】:905229245
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料

高效的在线交互式学Python,更快更好!

Python-turtle详解相关推荐

  1. python区块链开发_Fabric区块链Python开发详解

    Hyperledger Fabric是最流行的联盟区块链平台.Fabric区块链Python开发详解课程 涵盖Fabric区块链的核心概念.Fabric网络搭建.Node链码开发.Python应用开发 ...

  2. python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  3. 【python】详解类class的继承、__init__初始化、super方法

    原文链接; https://blog.csdn.net/brucewong0516/article/details/79121179?utm_medium=distribute.pc_relevant ...

  4. python与golang_Golang与python线程详解及简单实例

    Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var ...

  5. python 最小二乘法_最小二乘法及其python实现详解

    最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出).它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得 ...

  6. 【python】详解multiprocessing多进程-Pool进程池模块(二)

    [python]详解multiprocessing多进程-process模块(一) [python]详解multiprocessing多进程-Pool进程池模块(二) [python]详解multip ...

  7. 【python】什么是序列,Python序列详解

    什么是序列,Python序列详解 概述 序列索引 序列切片 序列相加 序列相乘 检查元素是否包含在序列中 序列相关的内置函数 range 快速初始化数字列表 概述 所谓序列,指的是一块可存放多个值的连 ...

  8. python多线程详解 Python 垃圾回收机制

    文章目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 总结起来,使用多线程编程具有如下几个优点: 二.线程实现 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 ...

  9. Python线程详解

    Python线程详解 线程简介 开启多线程 线程之间共享 GIL全局解释器锁 线程间通信 线程简介 线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元. ...

  10. 07 Python数据类型详解

    文章目录 一.整数类型(int)详解 1.1 整数的不同进制 1) 十进制形式 2) 二进制形式 3) 八进制形式 4) 十六进制形式 1.2 数字分隔符 1.3 相关方法 二.字符串类型(strin ...

最新文章

  1. 且看电脑高手如何优雅的使用windows系统
  2. matlab imadjust 用 opencv改写
  3. android 分区修改工具_Android刷机包制作工具与教程-大神必备
  4. 【Python】小练习
  5. FFmpeg学习(11)——视频转码之-crf参数详解
  6. python threading之条件变量同步(condition)
  7. 传输线模型(分布参数模型)
  8. PDF文件保密和去除密码
  9. 微信小程序文件下载并保存
  10. AI视频增强,提高视频画面的清晰度
  11. equal和==区别详解
  12. 将进酒:写在26岁生日这一天
  13. Java isEmpty()方法
  14. AAL模版 中英文对照
  15. [转帖] 丰富多彩的开放课程资源
  16. 使用python和sklearn的中文文本多分类实战开发
  17. matlab中ind2vec函数,ELM报错错误使用 ind2vec和出错elmtrain T = ind2vec(T)
  18. 一位对抗苹果的“勇士”:公开 iOS 未修复漏洞后,再写《恶意软件进 App Store 指南》
  19. 从零开始完成Yolov5目标识别(四)封装一个跨设备的YOLOv5检测软件
  20. 2019,一起共勉!

热门文章

  1. 英二阅读单词【2010 t2】
  2. Android获取短信验证码并自动填充的两种方式
  3. 预测结果展示-plt.pause()
  4. 口算小练习(2.1版本)
  5. IT的你,批量将pdf转图片,还要啥付费软件
  6. 【JS】addEventListener方法介绍
  7. iOS之深入解析类方法+load与+initialize的底层原理
  8. 树莓派Zero 2 W和Zero W的对比测试之外观差别
  9. 2016蓝桥杯C/C++省赛A组C组题目混编
  10. 花小几千买了PMP培训课程后,你将得到什么?