【初識Python】python入門(三)——海龜繪圖庫

turtle海龜繪圖庫

相關資料來自百度百科,以及MOOC教程。
turtle(海龜)是Python重要的標準庫之一,
它能夠進行基本的圖形繪製。
turtle圖形繪製的概念誕生於1969年,
成功應用於LOGO編程語言。
turtle庫繪製圖形有一個基本框架:
一個畫筆在座標系中移動,其運動軌跡形成了繪製圖形。
剛開始繪製時,畫筆位於畫布正中央,此處座標爲(0,0),前進方向爲水平向右。
另外,turtle庫使用
RGB色彩模式

turtle的繪圖窗體

利用setup()來設置。

# setup各項參數
turtle.setup(width, height, startx, starty)
  • setup()設置窗體大小及位置
  • 4個參數中後兩個可選
  • setup()不是必須的

空間座標體系

在這裏插入圖片描述>>>>>>>>>畫筆位於正中間(0,0)的位置。<<<<<<<<<<<<<

import 庫引用

首先學了個實例,繪製小蛇。其中第一行。便是import的使用。
什麼是import呢?

在這裏插入圖片描述而import的用法也是很多。
教學實例是小蛇的繪製。

在這裏插入圖片描述
這裏先把畫小蛇的三種使用import的方法寫出來:

第一種

import turtle 
turtle.setup(650, 350, 200, 200)
turtle.penup() 
turtle.fd(-250) 
turtle.pendown() 
turtle.pensize(25) 
turtle.pencolor("purple") 
turtle.seth(-40) 
for i in range(4): 
 turtle.circle(40, 80)
 turtle.circle(-40, 80) 
turtle.circle(40, 80/2) 
turtle.fd(40) 
turtle.circle(16, 180) 
turtle.fd(40 * 2/3) 
turtle.done()

第二種

from turtle import * 
setup(650, 350, 200, 200) 
penup() fd(-250) 
pendown() 
pensize(25) 
pencolor("purple") 
seth(-40) 
for i in range(4):
 circle(40, 80)
 circle(-40, 80) 
circle(40, 80/2) 
fd(40) 
circle(16, 180) 
fd(40 * 2/3) 
done()

第三種

import turtle as t 
t.setup(650, 350, 200, 200) 
t.penup() t.fd(-250) 
t.pendown() 
t.pensize(25) 
t.pencolor("purple") 
t.seth(-40) 
for i in range(4):
 t.circle(40, 80)
 t.circle(-40, 80) 
t.circle(40, 80/2) 
t.fd(40) 
t.circle(16, 180) 
t.fd(40 * 2/3) 
t.done() 

經過觀察發現第二種好像更簡便,
實則第二種限制會比較多,
只能用單個庫裏面的函數。
不過也可以作爲一種借鑑。
所以使用第三種代碼更好一點。
那麼每行的作用是什麼呢。

turtle庫的函數

畫筆控制函數

畫筆擡起和落下

畫筆操作後一直有效,一般成對出現
turtle.penup() 也可以寫 turtle.pu() 擡起畫筆
turtle.pendown() 也可以寫 turtle.pd() 落下畫筆

畫筆的移動和變向

畫筆的移動

①直線移動
turtle.forward(d) 也可以寫 turtle.fd(d)
向前移動,畫筆走直線
d: 行進距離,可以爲負數

②曲線移動
turtle.circle(r, extent=None)
根據半徑r繪製extent角度的弧形
r: 默認圓心在海龜左側r距離的位置 extent:
繪製角度,默認是360度整圓

畫筆的方向

①絕對角度 turtle.setheading(angle)
也可以寫 turtle.seth(angle)
改變移動方向,畫筆旋轉一定角度
angle: 行進方向的絕對角度(x軸y軸水平座標體系)

②相對角度
turtle.left(angle) 畫筆向左轉
turtle.right(angle) 畫筆向右轉
angle: 在海龜當前行進方向上旋轉的角度

畫筆顏色和大小

畫筆設置後一直有效,直至下次重新設置
畫筆寬度:turtle.pensize(width) 也可以寫 turtle.width(width)
畫筆顏色:turtle.pencolor(color) color爲顏色字符串或r,g,b值
》》》》這裏畫筆的顏色color可以有三種形式。《《《《

在這裏插入圖片描述

循環語句

代碼中另外一個要點就是循環語句的實現。

在這裏插入圖片描述

range()函數
產生循環計數序列
range(N)
產生 0 到 N-1的整數序列,共N個
range(M,N)
產生 M 到 N-1的整數序列,共N-M個

代碼嘗試

最後,我自己嘗試寫了個痛恨 喜愛的釘釘繪製
orz有點草陋。先放上預覽圖

在這裏插入圖片描述

代碼如下:

 from turtle import*
def Goto(x,y):
    penup()
    goto(x,y)
    pendown()
ht()
speed(0)
colormode(255)
bgcolor(0,120,215)
screensize(250,250)
setup(250,250)

Goto(0,-70)
pencolor(46,160,240)
fillcolor(46,160,240)
begin_fill()
circle(70,360)
end_fill()

Goto(10,-53)
fillcolor(255,255,255)
pencolor(255,255,255)
begin_fill()
seth(50)
fd(36)
seth(180)
fd(11)
seth(60)
fd(39)
seth(154)
fd(87)
seth(270)
fd(21)
seth(-24)
fd(38)
seth(172)
fd(30)
seth(-49)
fd(18)
seth(0)
fd(25)
seth(192)
fd(21)
seth(-39)
fd(20)
seth(10)
fd(14)
seth(-110)
fd(18)
seth(0)
fd(10)
seth(251)
fd(22)
end_fill()
done()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章