Python学习笔记 四 (Python基本绘图体系)
在学习过Python基本语法后可以编写一些简单的Python程序,随着更加一步的学习,我了解到了Python基本绘图体系——turtle绘图体系,希望能对你我有益。
目录
- turtle绘图体系的基本介绍
- turtle绘图窗体及坐标体系
- turtle绘图控制函数的介绍
一、turtle绘图体系的基本介绍
Python的绘图体系肯定不止turtle这一种,但是turtle绘图体系是最基础且是标准库里面的,因此turtle绘图体系是Python绘图体系中的入门绘图体系。turtle汉语意思为海龟,其大致绘图过程可以理解为,通过程序控制海龟行走,而海龟留下的“足迹”就所绘制的图像。
标准库:随着Python环境一同下载到本地的。
第三方库:需要额外安装才能使用。
二、turtle绘图窗体及坐标体系
1. turtle绘图窗体的设置
通过turtle库中提供的setup()函数来设置窗体的大小及位置。
turtle.setup(width, height, X, Y)
- width:表示窗体的宽
- height:表示窗体的高
- X:表示窗体距离桌面的 X 轴距离
- Y:表示窗体距离桌面的 Y轴距离
例如:我们需要设置一个宽为 800,高为 200,窗体位置为200 200的窗体。
#turtle窗体设置
import turtle
turtle.setup(800, 200, 200, 200)
2.turtle坐标体系
在turtle绘图时我们所需要绘制的图形在执行代码时我们需要一个参考,这样程序才能正确并且精确的画出我们所需要的图形。
-
空间坐标
1.绝对坐标:是一最初的“海龟”最原点(0,0)点,分为四个象限。
2.海龟坐标:是以“海龟”为起点,分为前后左右。
-
角度坐标
1.绝对角度坐标:是以海龟为坐标原点建立坐标系。
2.海龟角度坐标:是以海龟自身为参照。
注意: 最初始的海龟是在所创建窗体的正中间,且“海龟”是头朝右的。
三、turtle绘图控制函数的介绍
由于turtle库是标准库中的,所以在使用前只需要调用即可。
1. 控制画笔起落
#turtle库的使用
import turtle
turtle.penup() #控制画笔抬起
turtle.pendown() #控制画笔落下
只有画笔落下时才会留下“笔迹”,即显示图像。
2. 控制画笔笔迹粗细
#turtle库的使用
import turtle
turtle.pensize(40) #控制画笔的大小
turtle.width(40) #以海龟的视角来看,控制海龟宽度即画笔大小
控制画笔大小两种方式都可以只不过考虑的角度不同,这和绝对坐标和海龟坐标类似。
3. 控制画笔颜色
#turtle库的使用
import turtle
turtle.pencolor("red") #通过预定义的颜色名称
turtle.pencolor(0.63, 0.93, 0.13) #通过rgb颜色参数
turtle.pencolor((0.63, 0.93, 0.13)) #通过一组rgb参数
我们知道显示屏显示的颜色都是有 R(红) G(绿) B(蓝) 来互相组合形成的,而pencolor函数里面的参数就是为RGB所对应的值,在Python中默认是采用0-1的小数来表示RGB每种颜色的值,不过也可以通过turtle.colormode()函数来更改为整数形式,比如PS中就使用的是整数形式。
#更改默认的RGB小数表达方式为整数表达
import turtle
turtle.colormode(255)
4. 画直线
#前进一段距离(从海龟的角度看)
import turtle
turtle.forward(100) #参数可以为负数
---------------------------
#将画笔放下然后通过goto()语句使画笔去一个点,就会留下笔迹(根据绝对坐标)
import turtle
turtle.pendown()
turtle.goto(100, 100)
5. 画圆
使用turtle.circle(r, y)函数,其中 r 是指所要画圆的半径,y 是指所要画的度数。
注意: 圆心的位置是指“海龟”左手边距离 r(半径)的位置, r 可以为负数。
import turtle
turtle.circle(50, 270)
6. 设置海龟角度
turtle.setheading()所设置的角度为绝对角度,即分为四个象限的绝对坐标。
import turtle
turtle.setheading(45) #这里的角度为绝对角度
当然也可以根据海龟的视角来设置海龟角度,让海龟左转右转。
注意: 海龟的左转右转都是在当前的基础上执行的,例如下面的代码左转右转后又回到原来的角度。
import turtle
turtle.left(45)
turtle.right(45)
待续…