Python turtle(介绍一)
关于绘制图形库turtle
# 画布上,默认有一个坐标原点为画布中心的坐标轴(0,0),默认"standard"模式坐标原点上有一只面朝x轴正方向小乌龟
一:海龟箭头Turtle相关方法
#############################
# 1.绘制的运动 #
#############################
a).移动和绘制
# turtle.forward(distance) | turtle.fd(distance)
# 画笔向绘制方向的当前方向移动distance(integer or float)的pixels距离,
# 例如:
turtle.fd(150)
# turtle.backward(distance) | turtle.back(distance) | turtle.bk(distance)
# 画笔向绘制方向的相反方向移动distance(integer or float)的pixels距离
# 例如:
turtle.backward(200)
# turtle.right(angle) | turtle.rt(angle)
# 绘制方向向右旋转angle度
# 例如:
turtle.rt(45)
# turtle.left(angle) | turtle.lt(angle)
# 绘制方向向左旋转angle度
# 例如:
turtle.lt(45)
# turtle.setpos(x, y=None) | turtle.setposition(x, y=None) | turtle.goto(x, y=None)
# 移动到绝对位置,如果画笔按下,就画线
# 参数x(a number or a pair/vector of numbers)
# 参数y(a number or None)
# 如果y为None,x必须是a pair of coordinates or a Vec2D
# 例如:
turtle.setpos((20,80))
turtle.setposition(120,20)
turtle.goto(60,30)
# turtle.setx(x)
# y纵向坐标不变,更改x横向坐标,x(integer or float)
# 例如:
turtle.setx(15)
# turtle.sety(y)
# x横向坐标不变,更改y纵向坐标,y(integer or float)
# 例如:
turtle.sety(15)
# turtle.seth(to_angle) | turtle.setheading(to_angle)
# 将方向设置成to_angle.to_angle(integer or float)to_angle的值在不同模式下含义如下
"standard"模式逆时针 "logo"模式顺时针
0 - east 0 - north
90 - north 90 - east
180 - west 180 - south
270 - south 270 - west
如下图"standard"模式时(默认0时表示x方向向右即向东);"logo"模式时(默认0时表示y方向向上即向北)
y"logo"时
^
|
|
|
(0,0)——————> x"standard"时
# 例如:
# "standard"模式时角度为逆时针,所以90度表示向北;logo"模式时角度为顺时针,所以90度表示向东
turtle.setheading(90)
# turtle.home()
# 将位置和方向恢复到初始状态,位置初始坐标为(0,0),方向初始为("standard"模式为right向右即东,"logo"模式是up向上即北)
# 例如:
turtle.home()
# turtle.circle(radius, extent=None, steps=None)
# 按给定的半径画圆,当前位置为圆的初始端点
Parameters:
radius(a number,圆半径,为正数则逆时针画,为负数则顺时针画,方向随着轨迹的变化而变化)
extent(a number or None,一个角度,决定哪部分圆圈被绘制,不提供extent表示画完整的圆)
steps(an integer or None,指定半径radius前提下,完成extent的角度时,分了几步,如画正5边形时turtle.circle(40, None, 5))
# 例如:
turtle.home()
# 当前位置(0,0)开始逆时针画半径为30的圆
turtle.circle(30)
# 逆时针画半径为50的半圆
turtle.circle(50, 180)
# 方向值为180,"standard"模式时方向向左,"logo"模式方向向下
print(turtle.heading())
turtle.circle(-50, 180)
print(turtle.heading())
# 逆时针方向半径为40画五边形(5步画接近整圆的图形)
turtle.circle(40, None, 5)
# turtle.dot(size=None, *color)
# 按给定直径size画圆点(None[未提供时取pensize+4 和 2*pensize中的最大值] 或 >= 1的整数),color圆点颜色
# 例如:
turtle.home()
# 当前画笔大小为1
print(turtle.pensize())
# 未提供取最大直径值为pensize+4 = 5
turtle.dot()
turtle.fd(50)
# 以直径为5画蓝色圆点
turtle.dot(5, "blue")
turtle.fd(50)
# 以直径为20画红色圆点
turtle.dot(20, "red")
turtle.fd(50)
print(turtle.position())
print(turtle.heading())
# turtle.stamp()和turtle.clearstamp(stamp_id)和turtle.clearstamps(n=None)
# turtle.stamp()是在当前位置拷贝一份此时箭头的形状,返回一个stamp_id(int型),
# turtle.clearstamp(stamp_id)用来删除指定stamp_id的箭头形状
# turtle.clearstamps(n=None),n为None时表示删除所有拷贝的箭头形状;为0不删除;n > 0 表示删除前n个,n < 0 表示删除后n个
# 例如:
# 画笔颜色设成红色
turtle.color("red")
num = 0
while num < 5:
# 当前位置拷贝一份箭头形状
stamp_id = turtle.stamp()
turtle.fd(50)
num += 1
# 改变画笔颜色为黑
turtle.color("black")
# 删除拷贝的箭头形状(此处id最后一次复制的stamp_id)
turtle.clearstamp(stamp_id)
# 删除前1个
turtle.clearstamps(1)
# 删除后1个
turtle.clearstamps(-1)
# 全部删除
turtle.clearstamps()
# 不删除
# turtle.clearstamps(0)
# turtle.undo()
# (每调用一次就)撤销最后的一次动作,需要撤销所有可通过while turtle.undobufferentries(),turtle.undobufferentries()返回当前可撤销次数
# 例如:
# 一直撤销最后一个动作直到不可撤销
while turtle.undobufferentries():
# 撤销最后的一次动作
turtle.undo()
# turtle.speed(speed=None)
Parameters:
peed为0-10的整数(1-10越来越快,0表示最快,参数为小数会被自动置为整数)或如下内置的速度字符串,如果>10或小于0.5则被置为0;为>=0.5的小数时被置为四舍五入的值。speed未设置则返回当前速度
# 内置的速度字符串:
"fastest": 0
"fast": 10
"normal": 6
"slow": 3
"slowest": 1
# 例如:
# 速度为0,表示速度最快
turtle.speed(0)
# <0.5速度会被置为0,表示速度最快
turtle.speed(0.4)
# >10速度会被置为0,表示速度最快
turtle.speed(20)
# 速度字符串fastest,表示速度最快
turtle.speed("fastest")
# 速度最慢
turtle.speed("slowest")
# 速度为9
turtle.speed(9)
b).获取(海龟)箭头的状态
# position() | pos()
# 返回(海龟)箭头当前位置坐标
# 例如:
turtle.pos()
# turtle.towards(x, y=None)
# 返回(海龟)箭头当前位置指向(x,y)位置连线的向量的角度(取决于当前模式,"standard"/"world"默认方向向右(即东)逆时针开始;"logo"模式默认方向向上(即北)顺时针开始)
Parameters:
x:x可以是一个number或一个pair/vector of numbers或一个turtle instance
y:x是一个number,y就是一个number;否则y为None
# 例如:
turtle.goto(20, 20)
# 移动后,位置为(20,20),两个向量分别是(20,20)点到(0, 0)点的向量和(20, 20)点到箭头当前方向的向量("standard"模式默认向右,逆时针算角度,"logo"模式默认向上,顺时针算角度)
angle = turtle.towards(0, 0)
print("两向量角度:", angle)
# turtle.towards((0, 0), None)
angle = turtle.towards((0, 0))
print("两向量角度:", angle)
# turtle箭头当前位置与turtle1箭头当前位置连线的向量到turtle箭头当前位置与turtle当前方向连线的向量角度
turtle1 = turtle.Turtle()
turtle1.setpos(0, 0)
angle = turtle.towards(turtle1)
# "standard"模式逆时针算角度,所以towards()后的角度angle是225,不是135
print("两向量角度:", angle)
# turtle.xcor() 和 turtle.ycor()
# turtle.xcor()是返回(海龟)箭头的x坐标,turtle.ycor()是返回(海龟)箭头的y坐标
# 例如:
turtle.lt(50)
turtle.fd(100)
# 打印箭头当前坐标(64.28,76.60)
print(turtle.pos())
# 原数据64.27876096865394,保留5位后打印64.27876
print(round(turtle.xcor(), 5))
# 原数据76.60444431189781,保留5位后打印76.60444
print(round(turtle.ycor(), 5))
# turtle.heading()
# 返回当前箭头方向角度,取决于当前模式mode,"standard"模式时默认方向向右逆时针计算角度;"logo"模式默认方向向上,顺时针计算角度
# 例如:
见turtle.circle中的例子
Python turtle(介绍一)的更多相关文章
- 从Scratch到Python——python turtle 一种比pygame更加简洁的实现
从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...
- 让小乌龟可以唱歌——对Python turtle进行拓展
在Scratch中,小猫是可以唱歌的,而且Scratch的声音木块有着丰富的功能,在这方面Python turtle略有欠缺,今天我们就来完善一下. Python声音模块 Python处理声音的模块很 ...
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...
- 【转】Python Twisted介绍
Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...
- 【美妙的Python之中的一个】Python简单介绍及环境搭建
美妙的Python之Python简单介绍及安装 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.Python: ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- 利用Python进行数据分析——重要的Python库介绍
利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...
随机推荐
- ibm 汇编
https://www.ibm.com/developerworks/cn/linux/l-assembly/index.html https://72k.us/file/4031001-328073 ...
- 使用tmate快速分享你的终端会话
tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等).它是一个终端多路复用器,同时具有即时分享终端的能力.它允许在单个屏幕中创建并 ...
- Centos 7设置静态IP,修改时区,关闭防火墙
Centos 7设置静态IP # vi /etc/sysconfig/network-scripts/ifcfg-enxxx BOOTPROTO="static" ...... I ...
- Centos-7修改yum源(阿里yum源)
国外地址yum源下载慢,下到一半就断了,就这个原因就修改它为国内yum源地址 国内yum源: 阿里centos7 yum源:http://mirrors.aliyun.com/repo/Centos- ...
- IdentityServer4入门三:授权模式
在入门一.入门二我们实现了一个完整的API保护的过程.需要保护的API只需在其Controler上应用[Authorize]特性,来显式指定受保护的资源.而我们实现的这个例子,所应用的模式叫“Clie ...
- Struts框架----进度1
一.Struts的理解 1.struts是一个按MVC模式设计的web层框架,其实它就是一个大的Servlet:ActionServlet,或者是ActionServlet的子类.在web.xml文件 ...
- 《Glibc内存管理》笔记DAY5
目录 分箱式内存管理 Unsorted bin Fast bins 核心结构体分析 malloc_state 内容来源 分箱式内存管理 Unsorted bin Unsorted bin 可以看作 ...
- Qt之模型/视图(委托)
概念 不同于模型 - 视图 - 控制器模式,模型/视图设计不包括用于管理与用户交互的一个完全独立的组件.一般情况,视图负责将模型数据呈现给用户以及处理用户输入.为了输入更加具有灵活性,则由委托来执行交 ...
- 通过adb操作安卓亮屏、设置背光亮度、解锁、打开app
亮屏 adb shell inputkeyevent 26 keyevent 26表示点击power Android adb 点亮和关闭屏幕的命令 # kernel休眠 echo mem > / ...
- pve_ceph问题汇总
在同一个网络内,建立了两个同名的群集 Jun 24 11:56:08 cu-pve05 kyc_zabbix_ceph[2419970]: ]} Jun 24 11:56:08 cu-pve05 co ...