turtle库语法元素分析

Python的turtle库是一个直观有趣的图形绘制函数库。turtle(海龟)图形绘制的概念诞生于1969年,并成功运用于LOGO编程语言。由于turtle图形绘制概念十分值观且流行,Python接受了这个概念,形成了一个Python的turtle库,并成为标准库之一。

一、绘图坐标体系

turtle库绘制的图形有一个基本的框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进“、”后退”、“旋转”等爬行行为,对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),行进方向为水平右方。例如,用如下代码绘制如图所示的坐标体系。

turtle.setup(650,350,200,200)

该代码中使用了turtle.setup()函数,该函数使用方法如下:

turtle.setup(width,height,startx,starty)

作用:设置主窗体的大小和位置。

参数如下:

width:窗口宽度,如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例。

height:窗口高度,如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例。

startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央。

starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央。

二、画笔控制函数

1、turtle.penup()和turtle.pendown()函数

        turtle中的画笔(即小海龟)可以通过一组函数来控制,turtle.penup()和turtle.pendown()是一组,他们分别表示抬起画笔和落下画笔,函数定义如下:

turtle.penup()

别名turtle.pu(),turtle.up()

作用:抬起画笔,之后移动画笔不会绘制图形。

参数:无。

turtle.pendown()

别名turtle.pd(),turtle.down()

作用:落下画笔,之后移动画笔将会绘制图形。

参数:无。

2、turtle.pensize()函数

turtle.pensize()函数用来设置画笔尺寸,函数定义如下:

turtle.pensize(width)

别名turtle.width()

作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。

参数如下:

width:设置的画笔线条宽度,如果值是None或者为空时,则函数返回当前画笔宽度。

3、turtle.pencolor()函数

turtle.pencolor()函数给画笔设置颜色。函数定义如下:

turtle.pencolor(colorstring)或turtle.pencolor((r,g,b))

作用:设置画笔颜色,当无参数输入时返回当前画笔颜色。

参数如下:

colorstring:表示颜色的字符串,例如,“purple”、“red”、“blue”等。

(r,g,b):颜色对于的RGB数值,例如(51,204,140)。

        很多RGB颜色都有固定的英文名字,这些英文名字可以作为colorstring输入到turtle.pencolor()函数中,也可以采用(r,g,b)形式直接输入颜色值。下面是几种典型的RGB颜色:

英文名称RGB十六进制中文名称
white255 255 255#FFFFFF白色
black0 0 0#000000黑色
grey190 190 190#BEBEBE灰色
darkgreen0 100 0#006400深绿色
gold255 215 0#FFD700金色
violet238 130 238#EE82EE紫罗兰色
purple160 32 240#A020F0紫色

三、形状绘制函数

1、turtle.fd()函数

        turtle通过一组函数控制画笔的行进动作,进而绘制形状。turtle.fd()函数最常用来控制画笔向当前行进方向前进一个距离,函数定义如下:

turtle.fd(distance)

别名

turtle.forwardd(distance)

作用:向小海龟当前行进方向前进一个distance距离。

参数如下:

distance:行进距离的像素值,当值为负数时,表示向相反方向行进。

实例2.1中5、14、16行代码:
 

#e2.1DrawPython.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40 * 2/3)

分别表示:向画笔当前行进方向或反方向行进一个距离,进而绘制一条直线。第5行代码配合了第4行抬起画笔函数,因此,它将不绘制一条直线,而是将画笔移动到某个位置。

2、turtle.seth()函数

turtle.seth()函数用来改变画笔绘制方向,函数定义如下:

turtle.seth(to_angle)

别名

turtle.setheading(to_angle)

作用:设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。

参数如下:

to_angle:角度的整数值。

如图是turtle库的角度坐标体系,供turtle.seth()等函数使用。

        需要注意的是,turtle 库的角度坐标体系以正东向为绝对 0度,这也是小海龟初始爬行方向,正西向为绝对 180 度,这个方向坐标体系是方向的绝对方向体系,与小海龟爬向当前方向无关。因此,可以利用这个绝对坐标体系随时更改小海龟的前进方向。
        实例代码 2.1中第9行将小海龟的前进方向设定为-40度,即320度,之后小海龟向这个方向前进。


3、for 循环语句和 turtle.circle()函数

for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40, 80/2)
turtle.circle(16,180)


        由于存在缩进,实例代码 2.1 中第10、11、12行是一个由保留字 for 引导的整体,这是另一种循环结构,称为“遍历循环”。for 语向的循环格式如下:
for i in range(<循环次数>):
<语句块 1>
        实例代码2.1 中第10行的for循环表示第11、12行代码连续执行 4次。
turtle.circle()函数用来绘制一个弧形,函数定义如下:
turtle.circle (radius, extent=None)
作用:根据半径radius 绘制extent 角度的弧形。

参数如下。
radius:弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径在小海龟右侧。
extent: 绘制弧形的角度,当不设置参数或参数设置为 None 时,绘制整个圆形。
实例代码 2.1 中各西数包括角度值、半径值等参数是根据绘制内容的样式调整确定的。

  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟1号!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值