全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图

目录

  • 1. 初探海龟绘图
    • 1.1 了解海龟绘图的坐标系
    • 1.2 海龟绘图的三要素
    • 1.3 绘制第一只海龟

最近博主在 CSDN 上看到许多关于海龟画图的案例,如画圣诞树、五角星等,但是都是直接给出了源码以及一些简单的注释,没有对其详细的说明,会让很多初学者迷糊很久,故这里博主详细地对 turtle 模块中的方法进行详解,让广大博友能够做到自由画图。

海龟绘图是 Python 内置的一个比较有趣的模块,模块名称为 turtle。它最初源于 20世纪60年代 的 Logo 语言,之后成为了 Python 的内置模块。海龟绘图提供了一些简单的绘图方法,可以根据编写的控制指令(代码),让一个 “海龟” 在屏幕上来回移动,而且可以在它爬行的路径上绘制图形。通过海龟绘图,不仅可以在屏幕上绘制图形,还可以看到整个绘制过程。另外,海龟绘图对初学者十分友好,它能够轻松地编写出很多有趣的实例。

1. 初探海龟绘图

海龟绘图是 Python 内置的模块,在使用前需要导入该模块,可以使用以下几种方法导入:

import turtle  # 通过模块名来使用其中的方法、属性
import turtle as t  # 通过别名t来使用其中的方法、属性
from turtle import *  # 可以直接使用其中的方法、属性

1.1 了解海龟绘图的坐标系

在学习海龟绘图之前,需要先了解海龟绘图的坐标系。海龟绘图采用的是平面坐标系,即画布(窗口)的中心为原点(0,0),横向为 x 轴,纵向为 y 轴,x 轴控制水平位置,y 轴控制垂直位置。例如,一个 400×320 的画布,对应的坐标系如下图所示。
全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图_第1张图片
在上图中,绿色虚线框为画布大小。海龟活动的空间为绿色虚线框以内。即 x 轴的移动区间为 -200~200,y 轴的移动区间为 -160~160。同数学中一样,表示海龟所在位置(即某一点)的坐标为 (x, y)。

1.2 海龟绘图的三要素

采用海龟绘图有三个关键要素,即方向、位置和画笔。在进行海龟绘图时,主要就是控制这些要素来绘出我们想要的图形。下面分别进行介绍。

  1. 方向 在进行海龟绘图时,方向主要用于控制海龟的移动方向。主要有以下 3 个方法进行设置
    left()/lt() 方法:让海龟左转 (逆时针) 指定度数。
    right()/rt() 方法:让海龟右转 (顺时针) 指定度数。
    setheading()/seth() 方法:设置海龟的朝向为0(东)、90(北)、180(西)或 270(南)。
  2. 位置 在进行海龟绘图时,位置主要用于控制海龟移动的距离。主要有以下 6 个方法进行设置:
    forward(distance):让海龟向前移动指定距离,参数 distance 为有效数值。
    backward(distance):让海龟向后退指定距离,参数 distance 为有效数值。
    goto(x,y):让海龟移动到画布中的特定位置。即坐标 (x,y) 所指定的位置。
    setx(x):设置海龟的横坐标到 x,纵坐标不变。
    sety(y):设置海龟的纵坐标到 y,横坐标不变。
    home():海龟移至初始坐标(0,0),并设置朝向为初始方向。
  3. 画笔 海龟绘图中的画笔就相当于现实生活中绘图所用的画笔。在海龟绘图中,通过画笔可以控制线条的粗细、颜色和运动的速度。关于画笔的详细介绍请看后续。

1.3 绘制第一只海龟

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:2.绘制一只向前爬行的海龟.py
@time:2020/12/29
"""

import turtle  # 导入海龟绘图模块

t_ufo = turtle.Turtle()  # 创建一只小海龟,命名为t_ufo 等价==>turtle.Pen()
t_ufo.forward(200)  # 向前爬行200像素
# 海龟绘图默认情况下,光标为箭头,可以通过海龟的shape()方法进行修改
# 将光标修改为海龟形状
t_ufo.shape("turtle")  # 设置为海龟形状
turtle.done()  # 海龟绘图程序的结束语句(开始主循环) 等价==> turtle.mainloop()
"""
注意:如果在屏幕上只需要有一只小海龟,那么也可以不创建海龟对象,直接使用turtle作为海龟对象即可。
"""

程序运行结果如下:
全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图_第2张图片

你可能感兴趣的:(Python,python,turtle,画图,可视化)