1. 程式人生 > 其它 >全網最細海龜 (turtle) 畫圖講解 (一):初探海龜繪圖

全網最細海龜 (turtle) 畫圖講解 (一):初探海龜繪圖

技術標籤:Pythonpythonturtle畫圖視覺化

目錄


最近博主在 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 的畫布,對應的座標系如下圖所示。


在上圖中,綠色虛線框為畫布大小。海龜活動的空間為綠色虛線框以內。即 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作為海龜物件即可。
"""

程式執行結果如下:
在這裡插入圖片描述