海龟绘图:Python3.7的turtle模块

小海龟历险记

Shawn
python3.7
文档:
https://docs.python.org/3/library/turtle.html

  • 想象一下,把一个小海龟扔到沙滩上.小海龟爬啊爬,沙滩上留下来一道道痕迹,这就是turtle模块.

小海龟的动作

爬行

前进:forward/fd
turtle.forward(distance)
turtle.fd(distance)
Parameters: distance – a number (integer or float)
  • 小海龟朝当前方向向前爬行.
后退:back/bk/backward
turtle.back(distance)
turtle.bk(distance)
turtle.backward(distance)
Parameters: distance – a number (integer or float)
  • 小海龟向后爬行.
右拐(顺时针转):right/rt
turtle.right(angle)
turtle.rt(angle)
Parameters: distance – a number (integer or float)
  • 小海龟顺指针转向.
左拐(逆时针转):left/lt
turtle.left(angle)
turtle.lt(angle)
Parameters: angle – a number (integer or float)
  • 小海龟逆时针转向.
爬到指定位置:goto/setpos/setposition
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers
y – a number or None
  • 小海龟爬到指定的坐标位置.
x轴上移动:setx
turtle.setx(x)
Parameters: x – a number (integer or float)
  • 小海龟横向爬行.
y轴上移动:sety
turtle.sety(y)
Parameters: y – a number (integer or float)
  • 小海龟纵向爬行.
转向指定方向:setheading/seth
turtle.setheading(to_angle)
turtle.seth(to_angle)
Parameters: to_angle – a number (integer or float)
  • 小海龟朝向指定方向.
  • 注意,默认的方向可能有所不同:
standard mode logo mode
0 - east 0 - north
90 - north 90 - east
180 - west 180 - south
270 - south 270 - west
回家:home
turtle.home()
  • 小海龟回到图像原点(0,0),并朝向默认初始方向.
画圆:circle
turtle.circle(radius, extent=None, steps=None)
Parameters: 
radius – a number
extent – a number (or None)
steps – an integer (or None)
  • 小海龟从当前位置开始向前画半径为radius,角度为extent的圆弧.
  • radius为正,则逆时针,反之顺时针.
  • 在turtle里,本质上,画圆弧相当于画n段直线.
  • 用steps可以指定n的数量.换而言之,可以用于实现一些多边形.
画点:dot
turtle.dot(size=None, *color)
Parameters: 
size – an integer >= 1 (if given)
color – a colorstring or a numeric color tuple
  • 在当前位置画一个直径为size,颜色为color的点.
  • 如果没有指定size,会默认选择max(当前笔粗+4,当前笔粗*2)
海龟分身:stamp
turtle.stamp()
  • 在当前位置保存一个一模一样小海龟幻象,并返回这个幻象的id.
分身解除:clearstamp
turtle.clearstamp(stampid)
Parameters: stampid – an integer, must be return value of previous stamp() call
  • 根据id解除海龟分身.
批量分身解除:clearstamps
turtle.clearstamps(n=None)
Parameters: n – an integer (or None)
  • 批量解除分身.
  • 默认全部,若n为正则解除最早n个,为负责解除最晚n个.
时光回溯:undo
turtle.undo()
  • 每执行一次可以回到上一步的状态.
调速:speed
turtle.speed(speed=None)
Parameters: speed – an integer in the range 0..10 or a speedstring (see below)
  • “fastest”: 0
  • “fast”: 10
  • “normal”: 6
  • “slow”: 3
  • “slowest”: 1

  • 调节小海龟爬行以及转向的速度.

  • 从1到10逐步加快,也可以设定为最快:0.
  • 注意:小于等于0.5或者大于10都会被直接设定为0

海龟状态查询

海龟位置:position/pos
turtle.position()
turtle.pos()
  • 返回小海龟当前的位置.
小海龟的头部与目标间的角度:towards
turtle.towards(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
  • 返回小海龟当前方向与指定坐标(或者另一个海龟实体)连线的夹角.
x坐标查询:xcor
turtle.xcor()
  • 返回x坐标.
y坐标查询:ycor
turtle.ycor()
  • 返回y坐标.
当前方向:heading
turtle.heading()
  • 返回小海龟当前方向.
距离查询:distance
turtle.distance(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
  • 返回小海龟与指定坐标(或者另一个海龟实体)间的距离.

定制规则

一圈有多少度:degrees
turtle.degrees(fullcircle=360.0)
Parameters: fullcircle – a number
  • 设定一圈有多少度.如果你填400,那在小海龟的世界里一圈会被划分成400份而不是360份.
用弧度:radians
turtle.radians()
  • 设定用弧度而不是角度.

画笔

  • 好吧,可爱的小海龟现在终于变成画笔了.
下笔(肚皮贴地):pendown/pd/down
turtle.pendown()
turtle.pd()
turtle.down()
  • 开始画出移动轨迹.
抬笔(肚皮离地):penup/pu/up
turtle.penup()
turtle.pu()
turtle.up()
  • 移动时不画线了.
笔粗:pensize/width
turtle.pensize(width=None)
turtle.width(width=None)
Parameters: width – a positive number
  • 设定画笔的粗细.
  • 如果无参数,返回当前笔粗.
画笔(海龟)状态总控:pen
turtle.pen(pen=None, **pendict)
Parameters: 
pen – a dictionary with some or all of the below listed keys
pendict – one or more keyword-arguments with 
  • 14
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值