python的標準庫——turtle

參考:
https://blog.csdn.net/zengxiantao1994/article/details/76588580

turtle介紹

turtle是標準庫,是一種入門級的圖形繪製函數庫。
爲什麼叫turtle呢?你可以想象有一隻海龜在畫布上游走,它的足跡形成了要繪製的圖形。

標準庫和第三方庫的區別

標準庫:隨解釋器直接安裝到操作系統中的功能模塊。
第三方庫:需要經過安裝才能使用的功能模塊。
庫Library、包Package、模塊Module,都統稱爲模塊。

turtle繪圖窗體

turtle的setup方法turtle.setup(startx,starty,width,height)可以用來指定畫布的長寬,(startx,starty)用來指定畫布的左上角的座標位置。
這裏寫圖片描述
若方法setup只有2個參數,則2個參數分別指定畫布的寬度和高度即turtle.setup(width,height),此時窗口位於屏幕中心。
值得注意的是,在一開始turtle位於畫布的正中心,而畫布的正中心也就是原點,即(0,0)而上圖中藍點的位置(0,0)並不是turtle所處的原點,藍點是屏幕座標系中的原點,而turtle所處的原點是畫布的原點,畫布的原點在黑點的位置,也就是畫布的正中心。

turtle空間座標與改變turtle的位置

turtle的空間座標如下圖所示,默認turtle位於畫布的原點,並且朝向x軸的正方向。
這裏寫圖片描述

goto方法

使用turtle的goto方法能夠指定絕對座標來改變turtle的位置,並且turtle移動的路徑都會顯示在畫布上。當然還有如下面fd()和bk()方法使用相對座標來移動turtle的方法,此時turtle每次移動都會依賴上次turtle所處的位置和朝向(方向)。

turtle.forward(d) 的別名爲 turtle.fd(d) ;使turtle向前移動d個像素
turtle.backward(d)的別名爲 turtle.bk(d)。使turtle向後移動d個像素。
當然d也可以爲負數,此時就相當於在相反方向移動|d|個像素的距離。
————————————————————————————————————
下面的代碼展示瞭如何使用絕對座標來繪製一幅圖形。

# 使用絕對座標來繪製圖形
import turtle as tl
tl.goto(100,100)
tl.goto(100,-100)
tl.goto(-100,-100)
tl.goto(-100,100)
tl.goto(0,0)
#使畫布不閃現,一直顯示
tl.done()

上面的代碼的效果其實就是下圖所展示的。
這裏寫圖片描述
下面再展示一幅圖像,它是站在turtle的角度來定義一些方位的。
這裏寫圖片描述

turtle的角度座標系與改變turtle的方向

那如果想使用角度來改變turtle的朝向呢?turtle在畫布上的角度又是什麼呢?
這裏寫圖片描述
實際上上面的絕對角度是爲了說明seth方法的,turtle.seth(angle)就是使用絕對角度來改變turtle的朝向的。當然我們也可以通過下面的方法使用相對角度來改變turtle的朝向。
turtle.left(angle)
turtle.right(angle)
需要注意的是無論是seth還是left,right方法都只是改變了turtle的方向,並沒有使turtle進行移動。

turtle語法

畫筆控制函數

turtle.penup() 別名 turtle.pu():擡起畫筆,可以想象爲turtle已經離開畫布(飛行),因爲turtle在飛行所以其在飛的過程中並不在畫布上形成路徑。
turtle.penup()只是在表示了畫筆飛起了,要使畫筆移動,還是需要使用turtle.fd(d)之類的移動畫筆的方法。
turtle.down() 別名 turtle.pd():落下畫筆,可以想象爲海龜在爬行。
上面的2個語句其實就是爲了移動turtle到另一個地方,並在這移動的過程中不在畫布上留下“足跡”。即要重新在一個位置開始“畫”。

畫筆設置函數(顏色,大小)

turtle.pensize(width) 用來設置畫筆寬度,即turtle的腰圍。
turtle.pencolor(color)用來修改turtle顏色的,color爲顏色字符串或rgb值。
turtle.pencolor(“purple”)
RGB的小數值:turtle.pencolor(0.63,0.13,0.94)
RGB的元組值:turtle.pencolor((0.63,0.13,0.94))

circle方法

circle方法既指定了turtle的方向又指定了畫多大角度的弧。
turtle.circle(radius, extent=None, steps=None)
描述:以給定半徑畫圓
參數說明:
radius(半徑):半徑爲正(負),表示圓心在畫筆的左邊(右邊)畫圓;
extent(弧度) (optional);
steps (optional) (做半徑爲radius的圓的內切正多邊形,多邊形邊數爲steps)。

circle(50) # 整圓;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圓

circle方法中半徑爲正負所帶來的區別如下圖:
下圖表示的是turtle在同一個位置,使用了同樣大小的半徑,但符號不同所帶的不同。此時我們忽略弧度所帶來的差異,明顯發現畫圓的方向不一樣。即:
半徑爲正,表示圓心在turtle的左邊正方向,並畫圓;
半徑爲負,表示圓心在turtle的右邊正方向,並畫圓。
這裏寫圖片描述

發佈了104 篇原創文章 · 獲贊 260 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章