tuetle库的简介:
Python turtle 库是一个直观有趣的图形绘制函数库。turtle(海龟)图形绘制的概念诞生于 1969 年,并成功应用于 LOGO 编程语言。由于 turtle 图形绘制概念十分直观且非常流行,Python 接受了这个概念,形成了一个 Python 的 turtle 库,并成为标准库之一。这 节将全面介绍 turtle 库的使用。
绘图坐标体系:
turtle 库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进”、“后退”、“旋转”等爬行行为,对坐标 的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),行进方向为水平右方。
其具体定义如下:
1.turtle.setup(width, height, startx, starty)
作用:设置主窗体的大小和位置。参数如下。
width:窗口宽度,如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例。
height:窗口高度,如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例。
startx:窗口左侧与屏幕左侧的像素距离,如果值是 None,窗口位于屏幕水平中央。
starty:窗口顶部与屏幕顶部的像素距离,如果值是 None,窗口位于屏幕垂直中央。
2.turtle.penup()和turtle.pendown()函数
turtle 中的画笔(即小海龟)可以通过一组函数来控制,turtle.penupO函数和 turtle.pendownO函数是一组,它们分别表示抬起画,笔和落下画笔,函数定义如下:
turtle.penup()别名
turtle.pu(),turtle.up()
作用:抬起画笔,之后移动画笔不绘制形状。参数:无。
turtle.pendown()别名--
turtle.pd(),turtle.down()
作用:落下画笔,之后移动画笔将绘制形状。参数:无。
3.turtle.pensize()函数
turtle.pensize()函数用来设置画笔尺寸,函数定义如下: turtle.pensize(width)别名
turtle.width()
作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。参数如下。
width:设置的画笔线条宽度,如果为None 或者为空,则函数返回当前画笔宽度。
4.turtle.pencolor()函数
turtle.pencolor((r,g,b))函数给函数设置颜色,r,g,b分别表示red,green,blue
形状绘制函数:
1.turtle.fd()函数
turtle 通过一组函数控制画笔的行进动作,进而绘制形状。turtle.fdo函数最常用来控制画笔向当前行进方向前进一个距离,函数定义如下:
turtle.fd(distance)别名
turtle.forward(distance)
作用:向小海龟当前行进方向前进 distance 距离。参数如下。
distance:行进距离的像素值,当值为负数时,表示向相反方向前进
2.turtle.seth()函数
turtle.seth0)函数用来改变画笔绘制方向,函数定义如下: turtle.seth(to_angle)别名
turtle.setheading(to_angle)
作用:设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。参数如下。
to_angle: 角度的整数值
3.turtle.circle()函数
turtle.circle(radius, extent=None)
作用:根据半径radius 绘制 extent 角度的弧形.
参数如下。
radius:弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径小海龟右侧。
extent: 绘制弧形的角度,当不设置参数或参数设置为None 时,绘制中各函数包括角度值、半径值等参数是根据绘制内容的样式调整确定的。
下面绘制正方形螺旋线来举例:
import turtle as t
t.setup(650,450,450,0)
t.left(90)
length=5
for i in range(50):
t.fd(length)
t.left(90)
t.fd(length)
t.left(90)
length+=5
t.done()
其中turtle.left()是一个改变方向的函数,向左转,同理自然还有一个向右转的函数turtle.right()
小编畅谈:
小编发布的作品都是适合初学者学习,如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。如果觉得小编写的还不错,关注,点赞,收藏。如果有什么错误之处,请多多指教。我会虚心接受。如果有什么地方不懂,可以私信小编,我会第一时间回复您。