Python绘图之turtle库的基础语法使用
作者:简时刻 发布时间:2023-04-09 18:39:16
标签:python,绘图,turtle库
前言
Python语言的turtle库是一个直观有趣的图形绘制函数库,是python语言标准库之一。
turtle库也叫海龟库,是turtle绘图体系的Python实现。turtle库是Python语言的标准库之一,是入门级的图形绘制函数库。
turtle绘图体系:也叫海龟绘图系统,它是在1969年诞生,主要用于程序设计入门的一种绘图方式。
Python计算生态 = 标准库 + 第三方库
标准库:随解释器直接安装到操作系统中的功能模块。
第三方库:需要经过安装才能使用的功能模块。
turtle官方文档:https://docs.python.org/3/library/turtle.html
turtle库的绘图原理是在一个横轴为x、纵轴为y的坐标平面中,以原点(0,0)位置为开始点,根据一组函数指令的控制来移动,从而在它爬行的路径上绘制图形。
一、turtle库的导入
方法一:import turtle
方法二:import turtle as t
方法三:from turtle import *
二、绘图命令介绍
1. 画布属性设置
语法 | 含义 |
turtle.screensize(width,height,bg) | 设置画布的宽、高、背景颜色 |
turtle.setup(width,height,startx,starty) | 设置画布显示窗口的大小、位置,前两个参数为窗口大小,后两个参数为起始点位置 |
2. 画笔属性设置
语法 | 含义 |
turtle.pensize(width) | 设置当前画笔线条的宽度为width像素 |
turtle.colormode(1.0[255]) | 设置画笔颜色模式 |
turtle.pencolor(colorstring) | 设置画笔的颜色,参数colorstring可以是"green"、"red"、"blue"、“yellow”等英文字符串 |
turtle.speed(5) | 设置画笔的移动速度,画笔绘制的速度范围在[0,10]整数之间,数字越大,画笔移动的速度越快。 |
3. 移动画笔和转角绘图
语法 | 含义 |
turtle.penup()/pu()/up() | 提起画笔,不绘图 |
turtle.pendown()/pd()/down() | 画笔移动时绘制图形 |
turtle.forward(100)/fd(100) | 画笔向当前方向移动100像素距离 |
turtle.backward(100)/bk(100) | 画笔向相反方向移动100像素距离 |
turtle.right(45)/rt(45) | 画笔顺时针移动45度 |
turtle.left(45)/lt(45) | 画笔逆时针移动45度 |
turtle.setheading(45)/seth(45) | 设置当前画笔朝向为45度 |
turtle.goto(x,y) | 移动画笔到指定坐标位置 |
turtle.hideturtle() | 隐藏画笔turtle形状 |
turtle.showturtle() | 显示画笔turtle形状 |
实例代码
# coding:utf8
import turtle as t
t.setup(500, 500) # 设置画布大小
t.reset() # 清空窗口
t.pensize(4) # 设置画笔大小为4
# 绘制外层正方形
t.penup() # 提起画笔
t.pencolor("red") # 设置画笔颜色
t.goto(-200, -200) # 设置外层正方形起点坐标
t.pendown()
t.forward(400) # 外层正方形边长为400像素
t.left(90)
t.forward(400)
t.left(90)
t.forward(400)
t.left(90)
t.forward(400)
# 绘制中间正方形
t.penup()
t.pencolor("yellow")
t.goto(-150, -150) # 中间正方形起点坐标
t.pendown()
t.seth(0) # 重新设定画笔角度为0°
t.forward(300)
t.left(90)
t.forward(300)
t.left(90)
t.forward(300)
t.left(90)
t.forward(300)
# 绘制内层中方形
t.penup()
t.pencolor("blue")
t.goto(-100, -100) # 内层正方形起点坐标
t.pendown()
t.seth(0)
t.forward(200)
t.left(90)
t.forward(200)
t.left(90)
t.forward(200)
t.left(90)
t.forward(200)
t.done()
4. 图形绘制与图形填充
语法 | 含义 |
turtle.circle(5,[extent,steps]) | 绘制半径为5的圆形 |
turtle.color(pencolor,fillcolor) | 同时设置画笔颜色(边框颜色)和填充颜色 |
turtle.begin_fill() | 以当前为起点,开始填充颜色 |
turtle.end_fill() | 以当前为终点,结束填充图形 |
turtle.done() | 绘图结束后,保留窗口 |
代码实例
# coding:utf8
import turtle
turtle.setup(500, 500)
turtle.reset()
turtle.pensize(5)
turtle.penup()
turtle.goto(0, -200)
turtle.pendown()
# 绘制红边框蓝填充颜色的大圆
turtle.color("red", "blue")
turtle.begin_fill()
turtle.circle(200)
turtle.end_fill()
# 绘制红边框绿填充颜色的大圆
turtle.color("red", "green")
turtle.begin_fill()
turtle.circle(150)
turtle.end_fill()
# 绘制红边框黄填充颜色的大圆
turtle.color("red", "yellow")
turtle.begin_fill()
turtle.circle(100)
turtle.end_fill()
turtle.done()
三、turtle绘图实例:绘制太阳花
import turtle as t # 导入Turtle库,并指定导入库的别名为t
t.color("red", "yellow") # 同时设置pencolor=red, fillcolor=yellow
t.speed(10) # 设置画笔绘制的速度为10
t.begin_fill() # 准备开始填充图形
for x in range(50): # 利用for循环绘制太阳花
t.forward(200) # 向当前画笔方向移动200像素
t.left(170) # 逆时针旋转170度
t.end_fill() # 填充完成
t.done() # 绘制完成后窗口不退出
总结
来源:https://blog.csdn.net/weixin_44940488/article/details/117955687
0
投稿
猜你喜欢
- 原因是:It looks like you need to flush stdout periodically (e.g. sys.stdo
- 本文讲述了提高代码可读性的十大注释技巧。分享给大家供大家参考,具体如下:很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时
- Tensorboard:如何更直观的观察数据在神经网络中的变化,或是已经构建的神经网络的结构。上一篇文章说到,可以使用matplotlib第
- vendorvendor概念最早是由Keith提出,用来存放依赖包。在版本1.5出现。例如gb项目提供了一个名为gsftp的示例项目,它有一
- 一、环境设置第一步引入必须的各类包import osimport tkinterimport tkinter.filedialogimpor
- 本文根据自己初学经验编写的使用xlwt模块设置单元格的一些基本样式,如设置单元格的背景颜色,下框线,字体,字体的颜色,设置列宽行高,插入简单
- 前言在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引
- 数据库复制:简单来说,数据库复制就是由两台服务器,主服务器和备份服务器,主服务器修改后,备份服务器自动修改。复制的模式有两种:推送模式和请求
- 1.文件的读取和显示方法1: f=open(r'G:\2.txt') print f.read()&nb
- JavaScript在讲解用 Ts 遍历一个对象之前, 我们先说说 在 Js 中怎么实现, for...in、Object.keys, 一个
- MySQL分区表概述我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。 对于这些历史数据的清理是一个非常头疼
- 图像文件是自己仿照mnist格式制作,每张图像大小为128*128import structimport matplotlib.pyplot
- commands模块的适用commands模块是python的内置模块,他共有三个函数,使用help(commands)可以查看到FUNCT
- 本文实例为大家分享了python抖音表白程序的具体代码,供大家参考,具体内容如下import sysimport randomimport
- 本文总结了两种方法来导入opencv与numpy包,第一种是直接在Pycharm中导入两个包,第二种是在官网下载相关文件进行配置。本人比较推
- 修改python运行路径import osos.chdir('C:/Users/86177/Desktop')os.chdi
- 原因Blog是一个更新并不很频繁的一套系统,但是每次刷新页面都要更新数据库反而很浪费资源,添加静态页面生成是一个解决办法,同时缓存是一个更好
- 其实这个话题已经在侧面写了好几篇深刻反思,用我自己几年工作实践的体会来看,性格决定了将来的发展。某些特质虽然可以掩饰,但在这之上必然不可能有
- 在javascript里怎么样才能把int型转换成string型(1)var x=100 a = &nb
- 寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法。甚至没有一个函数封装。。网址:http://