turtle库语法元素分析

您所在的位置:网站首页 turtle修改画笔颜色的函数 turtle库语法元素分析

turtle库语法元素分析

2023-11-07 05:01| 来源: 网络整理| 查看: 265

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():         实例代码2.1 中第10行的for循环表示第11、12行代码连续执行 4次。 turtle.circle()函数用来绘制一个弧形,函数定义如下: turtle.circle (radius, extent=None) 作用:根据半径radius 绘制extent 角度的弧形。

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3