turtle庫


turtle庫是海龜體系在python語言的功能的實現

turtle庫包含近百個功能函數,主要的函數有:

繪制狀態函數:pendown(),penup(),  pensize(), 對應的別名為pd(), pu(), width()

顏色控制函數:color(), pencolor(), begin_fill(), end_fill()

運動控制函數:forward(), backward(), right(), left(), setheading(), goto(), circle(),對應的別名為fd(), bk(), rt(), lt(), seth()

 

turtle.pendown()    別名turtle.pd()

  落下畫筆,之后,移動畫筆將繪制形狀

 

turtle.penup()    別名turtle.pu()

  抬起畫筆,之后,移動畫筆不會只形狀

 

turtle.pensize(widthh)    別名turtle.width(width)

  設置畫筆寬度,當無參數輸入時返回當前畫筆寬度

  width:設置的畫筆線條寬度,如果為None或者為空,則返回當前畫筆寬度

 

turtle.color()

  turtle.color(colorstring)    或者    turtle.color((r, g, b))    或者    turtle.color(r, g, b)    或者    turtle.color(colorstr1, colorstr2)    或者    turtle.color((r1, g1, b1), (r2, g2, b2))

  返回或設置畫筆及背景顏色,當無參數輸入時返回當前畫筆及背景顏色

  colorstring:表示顏色的字符串。例如"purple", "red", "blue"等

  (r, g, b):顏色對應的RGB的01數值,例如:1,0.65,0

  直接使用turtle.color()函數,返回一個二元組,例如("purple", "red")分別對應畫筆顏色和背景顏色

  使用單參數turtle.color(colorstring)函數,同時設置畫筆和背景顏色為colorstring對應的色彩

  使用雙參數turtle.color(colorstr1, colorstr2)函數,分別設置畫筆和背景顏色為colorstr1和colorstr2對應的顏色

 

turtle.pencolor(colorstring)   或者    turtle.pencolor((r, g, b))    或者    turtle.pencolor(r, g, b)

  返回或設置畫筆顏色,當無參數輸入時返回當前畫筆顏色

  colorstring:表示顏色的字符串。例如"purple", "red", "blue"等

  (r, g, b):顏色對應的RGB的01數值,例如:1,0.65,0

  與turtle.color()函數不同,turtle.pencolor(colorstring)函數僅用於返回或設置畫筆函數,對於沒有背景填充需要的應用,使用該函數更為合理

 

turtle.begin_fill()

  在繪制帶有填充色彩圖形之前調用,表示填充開始

 

turtle.end_fill()

  在繪制帶有填充色彩圖形之后調用,表示填充結束

 

turtle.forward(distance)    別名    turtle.fd(distance)

  向畫筆當前行進方向前進distance距離

  distance:行進距離的像素值。當值為負數時,表示相反方向前進

 

turtle.backward(distance)    別名   turtle.bk()

  向當前畫筆行進反方向行進distance距離

  distance:行進距離的像素值。當值為負數時,表示相反方向前進

  turtle.backward(distance)函數不改變畫筆方向,相當於后退着行進

 

turtle.right(angle)    別名    turtle.rt(angle)

  以當前行進角度為原點,行進方向向右改變相對應的角度值angle

  angle:角度的整數值

 

turtle.right(angle)    別名    turtle.rt(angle)

  以當前行進角度為原點,行進方向向左改變相對應的角度值angle

  angle:角度的整數值

 

turtle.setheading(to_angle)    別名    turtle.seth(to_angle)

  設置畫筆當前行進方向的角度為to_rangle,該角度是絕對方向角度值

  to_angle:角度地整數值

 

如圖是turtle庫的角度體系,供turtle.seth()函數使用、turtle庫的角度坐標體系以正東方為絕對0°,這也是畫筆的初始方向,正西方為絕對180°/-180º,正北方向-90º/270º,正南方向90º/-270º

這個方向坐標體系是方向的絕對方向體系,與畫筆當前方向無關

 

 

turtle.goto(x, y)

  將畫筆移動到絕對位置(x, y)處

  x:位置坐標系的絕對橫坐標

  y:位置坐標系的絕對縱坐標

  參考上面的圖,畫筆初始位置在畫布正中心,坐標為(0,0),其中,絕對0°方向為x正方向,絕對90°方向為y正方向,在此基礎上構建坐標系,表示絕對位置

 

turtle.circle(radius, extent = None)

  根據半徑radius繪制extent角度的弧形

  radius:弧形半徑,當值為正數時,半徑在畫筆左側。值為負數時,半徑在畫筆右側。

  extent:繪制弧形的角度。當不給該參數或該參數為None時,繪制整個圓形

 

 

如下實例,

from turtle import *
from time import sleep

def go_to(x, y):
   up()
   goto(x, y)
   down()


def big_Circle(size):  #函數用於繪制心的大圓
   speed(1)
   for i in range(150):
       forward(size)
       right(0.3)

def small_Circle(size):  #函數用於繪制心的小圓
   speed(1)
   for i in range(210):
       forward(size)
       right(0.786)

def line(size):
   speed(1)
   forward(51*size)

def heart( x, y, size):
   go_to(x, y)
   left(150)
   begin_fill()
   line(size)
   big_Circle(size)
   small_Circle(size)
   left(120)
   small_Circle(size)
   big_Circle(size)
   line(size)
   end_fill()

def arrow():
   pensize(10)
   setheading(0)
   go_to(-400, 0)
   left(15)
   forward(150)
   go_to(339, 178)
   forward(150)

def arrowHead():
   pensize(1)
   speed(1)
   color('red', 'red')
   begin_fill()
   left(120)
   forward(20)
   right(150)
   forward(35)
   right(120)
   forward(35)
   right(150)
   forward(20)
   end_fill()


def main():
   pensize(2)
   color('red', 'pink')
   #getscreen().tracer(30, 0) #取消注釋后,快速顯示圖案
   heart(200, 0, 1)          #畫出第一顆心,前面兩個參數控制心的位置,函數最后一個參數可控制心的大小
   setheading(0)             #使畫筆的方向朝向x軸正方向
   heart(-80, -100, 1.5)     #畫出第二顆心
   arrow()                   #畫出穿過兩顆心的直線
   arrowHead()               #畫出箭的箭頭
   go_to(400, -300)
   write("author:pywjh", move=True, align="left", font=("宋體", 30, "normal"))
   done()

main()

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM