本篇文章详细介绍了Python中的turtle绘图模块的基础用法,包括基本绘图命令、画笔控制和图形绘制实例等内容。适合初学者快速上手。
### Python 简单的绘图工具turtle使用详解
#### 1. 画布(Canvas)
画布是turtle为我们提供的一块用于绘图的区域。我们可以根据需要调整画布的大小和初始位置。
##### 1.1 设置画布大小
通过`turtle.screensize()`方法可以设置画布的大小及背景颜色。
- **语法**: `turtle.screensize(canvwidth=None, canvheight=None, bg=None)`
- **参数**:
- `canvwidth`: 画布的宽度(单位为像素)
- `canvheight`: 画布的高度(单位为像素)
- `bg`: 背景颜色,可以是字符串或RGB三元组
**示例代码**:
```python
turtle.screensize(800, 600, green) # 设置画布大小为800x600像素,并设置背景色为绿色
```
另外,`turtle.screensize()`不带参数时会返回默认的画布大小,即400x300像素。
- **语法**: `turtle.setup(width=0.5, height=0.75, startx=None, starty=None)`
- **参数**:
- `width`: 画布的宽度,可以是像素值也可以是相对于屏幕大小的比例。
- `height`: 画布的高度,可以是像素值也可以是相对于屏幕大小的比例。
- `startx`: 画布左上角的横坐标。
- `starty`: 画布左上角的纵坐标。
**示例代码**:
```python
turtle.setup(width=0.6, height=0.6) # 设置画布占屏幕的60%宽和高
turtle.setup(width=800, height=800, startx=100, starty=100) # 设置画布大小为800x800像素,并指定左上角的位置
```
#### 2. 画笔
画笔是指在画布上进行绘画的工具,在turtle中通常用一只小乌龟来代表画笔。
##### 2.1 画笔的状态
画笔有两个基本状态:位置和方向。
- **位置**:画笔在画布上的坐标位置。
- **方向**:默认情况下,画笔面向正右方。
##### 2.2 画笔的属性
- **宽度**:
- `turtle.pensize(size)`设置画笔的宽度。例如:
```python
turtle.pensize(5) # 设置画笔宽度为5像素
```
- **颜色**:
- 获取当前颜色:`turtle.pencolor()`。
- 设置颜色,可以是字符串如blue或RGB三元组如(0.2, 0.8, 0.55):
```python
turtle.pencolor(blue) # 设置画笔颜色为蓝色
turtle.pencolor((0.5, 0.2, 0.9)) # 设置画笔颜色为自定义RGB值
```
- **速度**:通过`turtle.speed(speed)`设置画笔的移动速度,范围是[0,10]。例如:
```python
turtle.speed(2) # 设置画笔移动速度为2
```
##### 2.3 绘图命令
**运动命令**:
- `turtle.forward(distance)`:向前移动指定距离。
- `turtle.backward(distance)`:向后移动指定距离。
- `turtle.right(angle)`:顺时针旋转指定角度。
- `turtle.left(angle)`:逆时针旋转指定角度。
- `turtle.penup()`:抬起画笔,移动时不留下痕迹。
- `turtle.pendown()`:放下画笔,移动时会留下痕迹。
- `turtle.goto(x, y)`:移动到指定坐标。
**控制命令**:
- 设置宽度和颜色:
- `turtle.pensize(width)`
- `turtle.pencolor(color)`
- 填充颜色设置`fillcolor(color)`, 开始填充`begin_fill()`,结束填充`end_fill()`
- 显示或隐藏画笔:
- `turtle.hideturtle()`: 隐藏画笔。
- `turtle.showturtle()`: 显示画笔。
**全局控制命令**:
- 清除和重置:
- `turtle.clear()`:清除所有图形。
- `turtle.reset()`:重置并清空所有图形。
#### 3. 命令详解
`turtle.circle(radius, extent=None, steps=None)`用于绘制圆形,其中radius为半径,extent为弧度的角度,steps表示将圆分割成多少个直线段来近似画出。
#### 4. 绘图举例
##### 4.1 太阳