日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】

發布時間:2023/12/4 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本文參考:Python庫官方文檔
本文例子摘抄自Python庫官方文檔,為了方便講解,個人進行了修改,并且相關函數說明不完全參照文檔,在結果處貼出了執行結果,不方便用jpg等圖片作為展示的用了gif格式圖片進行展示結果。

如有錯誤歡迎指出,之后會出關于turtle的實現的博文,歡迎關注!

由于網上其它文檔的形式不符合我個人習慣,在查閱資料時總感覺不是很習慣,就想著順手寫一篇博文作為一個參考示例。

在了解 turtle 時發現國內外一些青少年教育所使用的一些教學產品跟 turtle 類似;turtle 如果在國內作為一個青少年教學產品還是非常好的。

簡介

在 turtle 官方文檔中介紹說到 “Turtle graphics is a popular way for introducing programming to kids.” 它是一個向青少年作為一個普及啟蒙類編程的好方式;對于我個人來說,英文并不是我們的第一語言,一些學生的英文水平也不是過于優秀,在學習編程的時候會導致一些困難,雖然這些困難并不是決定學不學的會的主要原因,但也起到了一定的阻礙作用;如果在國內用 turtle 進行一個教學的話,用深圳的學生舉例,可以用作小學5年級(包括五年級)以上學生的教學;這對于他們來說,turtle 帶來的是其它教學產品所不能帶來“專業編程”的實踐體驗;這可能就是模擬環境和真實環境的區別吧。(當然,專業編程從業者使用 turtle 也肯定是沒問題,所以我之前才說,這個python庫所帶來的體驗是比較接近于“專業”的。)

turble 是由Wally Feurzig 和 Seymour Papert 在1966年進行開發的。

在 turtle 的基本開發中是圍繞著一個2D平面進行開發的,其中的主角是一個小箭頭;這個小箭頭就像一個小海龜,通過編程,命令小海龜在屏幕上進行移動繪制,從而畫出一條條線段。通過這些線段可以組成各式各樣的圖案,如果你的繪畫技術不怎么好,也許使用 turtle 進行繪制會有意想不到的驚喜!

在官方文檔的說明中,是以交互式的方式進行的說明,在本篇文章中,不以交互式方式進行說明;由于考慮到編程的普及這幾年呈現低齡化,本篇將會盡量的詳細說明,但一些深入的知識將不會講解(之后再寫一篇實現解析),一般來說簡單實用只需要了解使用方式即可;敬請諒解。假設你是個從業經驗的開發者,想了解實現過程,那么敬請期待我的下一篇文章。

注意,因為使用 turtle 的python是需要Tk支持的版本。Tkinter是標準的Python接口Tk的GUI工具包,可以使用命令 python -m tkinter 檢查是否安裝。如果出現一個簡單的窗口即為已安裝。Tk和tkinter在大多數Unix平臺以及Windows系統上都可用。點擊查看官方文檔具體Tk的詳情。

基本編程說明

以下編程說明摘抄于官方文檔(在本篇文檔中初學者無需過多了解)。

在編程中,基本上使用有兩個+兩個類:

  • TurtleScreen類將會繪制出一個2D平面,turtle 相當于繪畫筆。。
    它的構造函數需要一個Tkinter.Canvas或一個ScrolledCanvas作為參數。 當應用程序使用turtle時應該使用它。
    Screen()函數返回一個TurtleScreen子類的單例。 當turtle被用作單獨的繪制工具使,就應該使用這個函數。
  • RawTurtle 別名是 RawPen,定義了在 TurtleScreen
    上繪制的Turtle對象。它的構造函數需要Canvas,可用ScrolledCanvas或TurtleScreen作為參數,上一點已經提到
    TurtleScreen 將會繪制出一個2D平面給予 turtle 繪制,因此RawTurtle對象知道在哪里繪制。
    派生自RawTurtle的是子類Turtle(別名:),該子類使用自動創建Pen的“ Screen實例” (如果尚未存在)。
  • RawTurtle/Turtle的所有方法也作為函數存在,即面向過程的接口的一部分。

    過程接口提供了從類Screen和Turtle的方法派生的函數。它們與相應的方法同名。每當調用從screen方法派生的函數時,都會自動創建screen對象。每當調用從turtle方法派生的任何函數時,都會自動創建一個(未命名的)turtle對象。

    函數列表

    在 Turtle 中,Turtle 方法分別為 turtle 運動、筆控制、turtle 狀態;TurtleScreen 方法分為窗口控制、動畫控制、屏幕事件、特殊方法、輸入方法、面對屏幕的特殊方法。

    turtle 運動一共有如下函數:
    繪制及移動:

    • forward() | fd()
    • backward() | bk() | back()
    • right() | rt()
    • left() | lt()
    • goto() | setpos() | setposition()
    • setx()
    • sety()
    • setheading() | seth()
    • home()
    • circle()
    • dot()
    • stamp()
    • clearstamp()
    • clearstamps()
    • undo()
    • speed()

    取得 turtle 狀態:

    • position() | pos()
    • towards()
    • xcor()
    • ycor()
    • heading()
    • distance()

    設置和測量:

    • degrees()
    • radians()

    筆控制->繪制狀態:

    • pendown() | pd() | down()
    • penup() | pu() | up()
    • pensize() | width()
    • pen()
    • isdown()

    顏色控制:

    • color()
    • pencolor()
    • fillcolor()

    填滿:

    • filling()
    • begin_fill()
    • end_fill()

    更多繪制控制:

    • reset()
    • clear()
    • write()

    筆狀態->可見度:

    • showturtle() | st()
    • hideturtle() | ht()
    • isvisible()

    外觀:

    • shape()
    • resizemode()
    • shapesize() | turtlesize()
    • shearfactor()
    • settiltangle()
    • tiltangle()
    • tilt()
    • shapetransform()
    • get_shapepoly() 未補全

    事件:

    • onclick()
    • onrelease()
    • ondrag()

    一些 turtle 的特殊方法:

    • begin_poly()

    • end_poly()

    • get_poly()

    • clone()

    • getturtle() |

    • getpen()

    • getscreen()

    • setundobuffer()

    • undobufferentries()

    屏幕方法如下:
    窗口控制:

    • bgcolor()
    • bgpic()
    • clear() | clearscreen()
    • reset() | resetscreen()
    • screensize()
    • setworldcoordinates()

    動畫控制:

    • delay()
    • tracer()
    • update()

    屏幕事件:

    • listen()
    • onkey() | onkeyrelease()
    • onkeypress() 未補全
    • onclick() | onscreenclick()
    • ontimer()
    • mainloop() | done() 未補全

    設置和特殊方法:

    • mode() 未補全
    • colormode() 未補全
    • getcanvas()
    • getshapes()
    • register_shape() | addshape() 未補全
    • turtles()
    • window_height()
    • window_width()

    輸入方法:

    • textinput()
    • numinput()

    面對屏幕的特殊方法:

    • bye()
    • exitonclick() 未補全
    • setup()
    • title()

    函數使用與示例

    turtle 運動部分

    forward() | fd()

    使用語法:
    turtle.forward(距離)
    turtle.fd(距離)
    參數說明: 距離 一個數字 (整數 或者 浮點)
    (注:這個距離的單位是像素)
    代碼示例:

    from turtle import * forward(25) input()

    代碼釋義:
    from turtle import *: 在安裝好turtle后,使用from引入turtle,導入其中所有的模塊,所以我使用了import *;
    forward(25):由于我引入了 turtle 所以不再使用 turtle 進行調用,直接使用方法即可;使用forward向一個方向畫一根線,這根線默認方向向右,朝著箭頭所指的方向前進,并且是在行動中進行畫線,方法傳入的參數是你想繪制線段的長度,或者說是你想這只 turtle 想要行跡的距離,填入數字后,小 turtle 會向這個方向行動。
    input():假設不適用input將會導致窗口一閃而過,使用input可以使你查看運行效果;當然不排除有些IDE或者編輯器默認有此功能。
    運行結果如下:

    如果以上示例并不能很好的突出線段的距離,可以加大距離長度;現在我將長度改為300,代碼更改為:

    from turtle import * forward(300) input()

    運行效果如下:

    backward()

    使用語法:
    turtle.back(距離)
    turtle.bk(距離)
    turtle.backward(距離)
    傳入參數: 距離 數字
    把烏龜向后移動一段距離,與烏龜前進的方向相反。不能改變烏龜的方向。
    使用示例:

    from turtle import * forward(300) backward(400) input()

    代碼釋義:
    backward(400):使用backward返回turtle的行動,為了突出對比,使用了大于forward長度的距離參數。當然也可以使用bk和back方法,效果都是一樣的:

    from turtle import * forward(300) bk(400) input()

    運行結果:

    right()/left()

    使用語法:
    turtle.right(angle)
    turtle.rt(angle)
    參數: 角度 數字 (整數或者是浮點數)
    使用right方法可以使 turtle 向右旋轉角度,但要注意只是旋轉角度方向,并不會前行。角度的旋轉是以順時針旋轉。可以用正負號表示轉向方向。不添加符號表示默認方式順時針旋轉,添加“-”號為逆時針旋轉。
    使用示例(為了更好的做比較,我在forward前添加了right轉向):

    from turtle import * right(30) forward(300) input()

    right(30):順時針轉向30°
    運行結果:

    逆時針轉向:

    from turtle import * right(-30) forward(300) input()

    right(-30):逆時針轉向30°
    運行結果:

    使用right是向右轉,使用left是向左轉,在此不再贅述。

    goto()

    turtle.goto(x, y=None)
    turtle.setpos(x, y=None)
    turtle.setposition(x, y=None)
    參數:
    x :一個數或一個坐標
    y :一個數或者為空
    在turtle 繪制的區域,是一個2D平面,這個平面由坐標定位,在turtle中使用pos表示坐標,初始位置為(0,0),使用goto傳入坐標將會跳轉至該坐標點并且繪制;
    代碼示例:

    from turtle import *goto(30,30) input()

    goto(30,30) :跳轉到坐標點x為30,y為30處。
    運行結果:

    在此注意,小turtle的方向并沒有改變。

    setx()/sety()

    turtle.setx(x)
    參數: x:一個數字 (整數或者浮點)
    設置x坐標的值,y坐標不變
    turtle.sety(y)
    參數: y :一個數字(整數或者浮點)
    設置y坐標的值,x坐標不變
    setx代碼示例:

    from turtle import *setx(10) input()

    setx(10):設置x坐標到達10位置,sety不再贅述

    setheading() | seth()

    turtle.setheading(to_angle)
    turtle.seth(to_angle)
    參數:

    • to_angle:一個整數(整數或者浮點)

    使用 setheading 將會把turtle初始狀態設置為0°,類似于一個量角器,初始狀態下turtle是個垂直于一條平面的線,并沒有角度,所以為0,如果使用 setheading 傳入參數 45 后,將會方向指向相對于初始狀態的45°。
    代碼示例:

    from turtle import *setheading(45) input()

    運行效果:


    seth 方法類似不在贅述。

    home()

    turtle.home()
    將turtle移動到原點坐標(0,0)-并將其航向設置為起始方向。

    from turtle import *forward(80) home() input()

    home():將turtle至于初始坐標。
    運行結果:

    circle()

    turtle.circle(radius, extent=None, steps=None)
    參數:

    • radius :數字 半徑
    • extent : 數字 范圍 可以為空
    • steps : 整數 可以為空

    使用circle可以畫出一個圓,或者弧度,第一個參數為半徑,第二個參數可以控制繪制的范圍多少,如果輸入90,那么只繪制到90°位置;steps為階梯,圓的邊其實是鋸齒狀的,相當于像素點的感覺,一下代碼將會作出對比,方便理解。
    畫出一個圓代碼示例:

    from turtle import *circle(120) input()

    代碼釋義:
    circle(120):半徑為120的圓
    運行結果:

    加上第二個參數extent 進行繪制:

    from turtle import *circle(120,180) input()

    代碼釋義:
    circle(120,180):直徑120的一個扇形。

    加入第三個參數steps代碼示例:

    from turtle import *circle(120,180,1) input()

    代碼釋義:
    circle(120,180,1):階梯為1的扇形。


    變成一條直線了,我們給改steps為2,circle(120,180,2)運行結果:


    變成一個折線了,我們給改steps為20,circle(120,180,20)運行結果:

    恢復正常,這就是steps階梯。

    dot()

    turtle.dot(size=None, *color)
    參數:

    • size :大于0的整數
    • color :顏色標識 用一個指定顏色繪制一個尺寸為size的原點。

    代碼示例:

    from turtle import *dot(20,"blue") input()

    運行結果:

    stamp()

    turtle.stamp()
    復制一個turtle。

    from turtle import *stamp() color("blue") goto(100,0) input()

    代碼釋義:
    stamp():復制一個自己;
    color("blue"):設置當前的自己為藍色;
    goto(100,0):移動到左邊x為100,y為0處。
    結果如下:

    其中黑色就是我們復制的turtle②號,為了區別顏色一個為藍一個就是初始顏色了。

    clearstamp()

    turtle.clearstamp(stampid)
    參數:

    • stampid :使用 stamp 復制一個自己后將會返回一個 stamp的id值,傳入id值即可刪除復制的對象。

    代碼示例:

    from turtle import *turtle2=stamp() color("blue") goto(100,0) clearstamp(turtle2) input()

    代碼釋義:
    turtle2=stamp():接收返回的stampid
    clearstamp(turtle2):刪除復制的turtle
    運行結果:

    clearstamps()

    turtle.clearstamps(n=None)
    參數: 一個整數或者為空
    刪除復制的turtle的全部或前/后n個。如果n為空,則刪除所有turtle;如果n>0,則刪除前n個;如果n<0,則刪除后n個。
    代碼示例:

    from turtle import * import timefor i in range(8):stamp(); fd(10)time.sleep(1) clearstamps(2) time.sleep(1) clearstamps(-2) time.sleep(1) clearstamps() input()

    代碼釋義:
    for i in range(8):循環創建8個turtle,每個走10步;注意,復制的時候是已最主要的turtle為主,并且復制的時候會得到當前位置的信息,會在作為主體的turtle位置出現。
    time.sleep(1):為了能夠更好的看見效果所加的暫停代碼。
    clearstamps(2):刪除前2個turtle
    clearstamps(-2):刪除后2個turtle
    clearstamps():刪除全部復制的turtle

    運行結果:

    undo()

    turtle.undo()
    撤銷上一個turble的操作。
    代碼示例:

    from turtle import * import timefd(100) left(160) fd(100) time.sleep(1) undo() input()

    代碼釋義:
    undo():撤回上一步
    運行結果:

    speed()

    turtle.speed(speed=None)
    參數:

    • speed:0-10范圍內的整數。

    設置turtle的運動速度。超過范圍則為0。官方文檔給了一個速度值快慢的參考,并且可以用標識當作參數傳入,如下:

    • “fastest”: 0
    • “fast”: 10
    • “normal”: 6
    • “slow”: 3
    • “slowest”: 1

    代碼示例:

    from turtle import * import timespeed('fastest')#或者使用0 circle(100) input()

    代碼釋義:
    speed('fastest'):使用最快的速度,也可以用0代替
    運行結果(一下舉例了2個不同值的結果):

    筆控制

    繪制狀態

    penup() | pu() | up()

    turtle.penup()
    turtle.pu()
    turtle.up()
    移動時不繪制。
    代碼示例:

    from turtle import * import timepenup() speed('normal')#也可以使用0代替 circle(100) input()

    代碼釋義:
    penup():使用后以下移動時不會進行繪制。
    運行結果:

    pendown() | pd() | down()

    turtle.pendown()
    turtle.pd()
    turtle.down()
    移動時繪制。
    代碼示例:

    from turtle import * import timepenup() circle(100) pendown() circle(100) input()

    代碼釋義:
    pendown():接著上一小點的代碼,走一圈后不繪制,最后又畫一圈繪制。
    運行結果:

    pensize() | width()

    turtle.pensize(width=None)
    turtle.width(width=None)
    參數:

    • width:線條寬度,可以為空

    設置線條寬度,或將其返回。
    代碼示例:

    from turtle import * import timepensize(10) circle(100) input()

    代碼釋義:
    pensize(10) :設置代碼的寬度,使用width方法結果相同
    運行結果:

    pen()

    turtle.pen(pen=None, **pendict)
    參數:

    • pen – 有特定標識值
    • pendict :有多個關鍵字參數

    設置pen的相關方法。
    以下為官方給出的設置值:

    • “shown”: True/False
    • “pendown”: True/False
    • “pencolor”: color-string or color-tuple
    • “fillcolor”: color-string or color-tuple
    • “pensize”: positive number
    • “speed”: number in range 0…10
    • “resizemode”: “auto” or “user” or “noresize”
    • “stretchfactor”: (positive number, positive number)
    • “outline”: positive number
    • “tilt”: number

    可在一條語句中設置多個屬性。
    代碼示例:

    from turtle import * import timepen(speed=10, pencolor="red", pensize=10) circle(100) input()

    代碼釋義:
    pen(speed=10, pencolor="red", pensize=10):設置pen(筆)的繪制速度為10,顏色為紅色,線條大小為10.
    運行結果:

    isdown()

    turtle.isdown()
    判斷比是否抬起或放下,換句話解釋就是判斷是否移動時繪制,如果繪制返回 True 否則返回 False。
    代碼示例:

    from turtle import * import timepen(speed=10, pencolor="red", pensize=10) circle(100) print(isdown()) penup() pen(speed=10, pencolor="red", pensize=10) circle(100) print(isdown()) input()

    代碼釋義:
    print(isdown()):在默認情況下是繪制的,輸出筆是否放下,輸出Ture
    penup():使用penup()抬起筆,移動時不會只,此時輸出False
    運行結果:

    顏色控制

    pencolor()

    turtle.pencolor(*args)
    返回當前線條設置的顏色或設置線條的顏色。
    pencolor可傳參與不傳參:

    • pencolor():不傳參返回當前顏色的設置
    • pencolor(colorstring):可以傳入字符串設置顏色值
    • pencolor((r, g, b)):傳入一個元組值進行設置
    • pencolor(r, g, b):直接賦予r、g、b值

    代碼示例:

    from turtle import * import timepencolor("brown") circle(100) input()

    代碼釋義:
    pencolor("brown"):設置顏色后畫圓
    也可以使用rgb傳入顏色:

    from turtle import * import timetup = (0.2, 0.8, 0.55) pencolor(tup) circle(100) input()

    運行結果:

    fillcolor()

    turtle.fillcolor(*args)
    返回設置的顏色或設置turtle的顏色。
    fillcolor可傳參與不傳參:

    • fillcolor():不傳參返回當前顏色的設置
    • fillcolor(colorstring):可以傳入字符串設置顏色值
    • fillcolor((r, g, b)):傳入一個元組值進行設置
    • fillcolor(r, g, b):直接賦予r、g、b值

    color()

    turtle.color(*args)
    返回設置筆的顏色或設置填充顏色。
    color可傳參與不傳參:

    • color():不傳參返回當前顏色的設置
    • color(colorstring):可以傳入字符串設置顏色值
    • color(colorstring), color((r,g,b)):傳入2個rgb值一個設置turtle顏色一個設置繪制線條顏色
    • color(colorstring1, colorstring2):傳入2個字符串值一個設置turtle顏色一個設置繪制線條顏色

    代碼示例:

    from turtle import * import timecolor("red", "blue") circle(100) input()

    代碼釋義:
    color("red", "blue"):設置線條為紅色,turtle為藍色
    運行結果:

    begin_fill()/end_fill()

    turtle.begin_fill()
    開始填充顏色。
    turtle.end_fill()
    結束填充顏色。
    代碼示例:

    from turtle import * import timecolor("black", "red") begin_fill() circle(100) end_fill() input()

    代碼釋義:
    begin_fill():開始填充,這個需要放在圖形繪制之前。
    end_fill():結束繪制,一定要加不然不會進行填充。
    運行結果:

    更多繪制控制

    reset()

    turtle.reset()
    從屏幕上刪除turtle,并將海龜重新居中,充值所有值。
    代碼示例:

    from turtle import * import timefd(100) left(30) fd(100) time.sleep(1) reset() input()

    代碼釋義:
    time.sleep(1):停止一秒對比效果
    reset():重置
    運行結果:

    clear()

    turtle.clear()
    清除屏幕繪制線條。并不影響turtle位置。
    代碼示例:

    from turtle import * import timefd(100) left(30) fd(100) time.sleep(1) clear() input()

    代碼釋義:
    clear():清除以上繪制效果
    運行結果:

    write()

    turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
    參數:

    • arg – 你想輸出到屏幕的值
    • move – True/False 輸出值時是否移動
      align – 對齊方式
      font – 字體樣式類別

    輸出值到屏幕上,可以設置字體以及對齊方式。
    代碼示例:

    from turtle import * import timefd(100) left(30) fd(100) time.sleep(1) write("你好呀", False, align="center") input()

    代碼釋義:
    write("你好呀", False, align="center"):顯示你好呀,但是在顯示值的時候不會移動,對其方式為居中對齊。
    運行結果:

    把write("你好呀", False, align="center")改為write("你好呀", True, align="center"),使輸出值時turtle移動。

    Turtle 狀態

    hideturtle()|showturtle()|isvisible()

    turtle.hideturtle()
    turtle.ht()
    設置turtle是否可見。
    代碼示例:

    from turtle import * import timehideturtle() input()

    代碼釋義:
    hideturtle():使turtle不可見
    運行結果:

    showturtle()

    turtle.showturtle()
    turtle.st()
    使turtle可見。
    代碼示例:

    from turtle import * import timehideturtle() time.sleep(1) showturtle() input()

    代碼釋義:
    showturtle():設置turtle可見。
    運行結果:

    turtle.isvisible()

    判斷turtle是否顯示。
    代碼示例:

    from turtle import * import timehideturtle() print(isvisible()) time.sleep(1) showturtle() print(isvisible()) input()

    代碼釋義:
    print(isvisible()):讀取狀態,顯示為True否則為False
    運行結果:

    外觀

    shape()

    turtle.shape(name=None)
    參數:

    • name:有效的形狀名稱 將turtle
      shape設置為具有給定名稱的形狀,如果未指定名稱,則返回當前形狀的名稱。名稱為的形狀必須存在于TurtleScreen的形狀字典中。默認有以下多邊形形狀:“箭頭”、“烏龜”、“圓”、“正方形”、“三角形”、“經典”。設置成什么turtle就會變成什么形狀。

    代碼示例:

    from turtle import * import timeshape("turtle") input()

    代碼釋義:
    shape("turtle"):將turtle設置成烏龜形狀
    運行結果:

    shapesize()

    turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)
    參數:

    • stretch_wid:y軸拉伸
    • stretch_len:x軸拉伸
    • outline:邊緣拉伸

    可以設置turtle的拉升。
    代碼示例:

    from turtle import * import timeshapesize(15, 15, 112) fd(100) input()

    代碼釋義:
    shapesize(15, 15, 112):x軸拉伸15,y軸拉伸15,邊緣拉伸112
    運行結果:

    tilt()

    turtle.tilt(angle)
    參數:

    • angle:角度

    改變箭頭方向,但不改變turtle方向。
    代碼示例:

    from turtle import * import timetilt(30) fd(111) input()

    代碼釋義:
    tilt(30):turtle旋轉角度,但不改變行動方向。
    運行結果:

    事件

    onclick()

    turtle.onclick(fun, btn=1, add=None)
    參數:

    • fun :響應的函數
    • btn:點擊的數量可為空
    • add: True或False 添加新綁定,否則將替換以前的綁定
      為turtle綁定一個點擊事件。

    代碼示例:

    from turtle import * import timedef turn(x, y):left(180)onclick(turn) input()

    代碼釋義:
    onclick(turn):每次點擊調用turn函數,轉動180°。
    運行結果:

    onrelease()

    turtle.onrelease(fun, btn=1, add=None)
    參數:

    • fun :響應的函數
    • btn:點擊的數量可為空
    • add: True或False 添加新綁定,否則將替換以前的綁定
      鼠標點擊釋放時響應某函數。

    代碼示例:

    from turtle import * import timedef turn(x, y):left(180) def turn_(x, y):left(-180)onclick(turn) onrelease(turn_) input()

    代碼釋義:
    onrelease(turn_):鼠標釋放后執行turn_函數
    運行結果:

    ondrag()

    turtle.ondrag(fun, btn=1, add=None)
    參數:

    • fun :響應的函數
    • btn:點擊的數量可為空
    • add: True或False 添加新綁定,否則將替換以前的綁定

    拖拽時響應。
    代碼示例:

    from turtle import * import timeondrag(goto) input()

    代碼釋義:
    ondrag(goto):拖動時執行goto
    運行結果:

    一些特別的Turtle方法

    clone()

    turtle.clone()
    克隆并返回具有相同屬性的turtle。
    代碼示例:

    from turtle import * import timemick = Turtle() joe = mick.clone() mick.goto(111,0) joe.goto(0,111) input()

    代碼釋義:
    mick = Turtle():創建一個turtle實例
    joe = mick.clone():克隆這個mick實例
    mick.goto(111,0):mick這個turtle往x為111y為0的坐標移動
    joe.goto(0,111):joe這個turtle往y為111x為0的坐標移動
    運行結果:

    getturtle()|getpen()

    turtle.getturtle()
    turtle.getpen()
    返回當前turtle的實例
    代碼示例:

    from turtle import * import timepet = getturtle() pet.fd(50) input()

    代碼釋義:
    pet = getturtle():得到當前turtle的對象
    運行結果:

    setundobuffer()

    turtle.setundobuffer(size)
    參數:

    • size:大小 設置緩沖區大小。使用undo撤銷緩沖區turtle的動作數,如果size為None則禁用撤銷。

    代碼示例:

    from turtle import * import timesetundobuffer(42) input()

    undobufferentries()

    返回緩沖區存儲動作數數量。
    代碼示例:

    from turtle import * import timefd(111) left(10) fd(11) print(undobufferentries()) input()

    代碼釋義:
    print(undobufferentries()):輸出緩沖區中的動作數
    運行結果:

    窗口控制

    bgcolor()

    turtle.bgcolor(*args)

    參數:

    • args:傳入顏色代碼或者標識猛,不傳則為獲取當前背景色 設置顏色或獲取當前顏色。

    代碼示例:

    from turtle import *bgcolor("orange") goto(10,0) input()

    代碼釋義:
    bgcolor("orange"):設置背景色為橘色
    運行結果:

    bgpic()

    turtle.bgpic(picname=None)
    參數:

    • picname:不傳則返回背景圖片文件名,傳入參數則設置背景圖片,可傳入文件名或路徑

    代碼示例:

    from turtle import *bgpic(r"C:\Users\Administrator\Desktop\timg1.jpg") goto(10,0) input()

    代碼釋義:
    bgpic(r"C:\Users\Administrator\Desktop\timg1.jpg"):設置背景圖
    運行結果:

    clear()|clearscreen()

    turtle.clear()
    turtle.clearscreen()
    屏幕清屏,但不移動turtle位置。
    代碼示例:

    from turtle import *goto(100,0) clear() input()

    代碼釋義:
    clear():清除繪制內容
    運行效果:

    clearscreen()

    清楚包括turtle在內的所有內容。
    運行結果:

    reset()|resetscreen()

    turtle.reset()
    turtle.resetscreen()
    重置屏幕上turtle為初始狀態。
    代碼示例:

    from turtle import * import timegoto(100,0) time.sleep(2) resetscreen() input()

    代碼釋義:
    resetscreen():重置turtle
    運行結果:

    screensize()

    turtle.screensize(canvwidth=None, canvheight=None, bg=None)
    canvwidth:畫布寬
    canvheight:畫布長
    調整畫布大小,使用滾動條查看超出可視窗體的內容。

    代碼示例:

    from turtle import * import timescreensize(2000,1500) goto(1000,0)

    代碼釋義:
    screensize(2000,1500):調整畫布寬為2000,長為1500
    運行結果:

    setworlcoordinates()
    turtle.setworldcoordinates(llx, lly, urx, ury)
    參數:

    • llx:左下角x
    • lly:左下角y
    • urx:右上角x
    • ury:右下角y

    通過左下角和右下角的xy自定義坐標系。
    代碼示例:

    from turtle import *setworldcoordinates(-10,-7.5,10,7.5) for _ in range(72):left(10) for _ in range(4):left(90); fd(5) input()

    代碼釋義:
    setworldcoordinates(-10,-7.5,10,7.5):自定義個小坐標系
    fd(5):在正常坐標系中繪制5個像素的距離過于小,自定義坐標系后,5個單位對比整個坐標系已經足夠。
    運行結果:

    動畫控制

    delay()

    turtle.delay(delay=None)
    參數:

    • delay:正整數

    以毫秒為單位設置或返回繪圖延遲。繪圖延遲越長,動畫越慢。
    代碼示例:

    from turtle import *delay(100) fd(200) input()

    代碼釋義:
    delay(100):定義延時
    運行結果:

    tracer()
    turtle.tracer(n=None, delay=None)
    參數

    • n:每n次屏幕更新
    • delay:延時

    打開/關閉turtle動畫并為更新圖形設置延遲。如果給定n,則僅真正執行第n次定期屏幕更新,可用于加速復雜圖形的繪制。
    代碼示例:

    from turtle import *tracer(100, 1) dist = 2 for i in range(200):fd(dist)rt(90)dist += 2 input()

    代碼釋義:
    tracer(100, 1):100次進行一次刷新屏幕
    運行結果:
    瞬間出現。

    改為每1次刷新屏幕:tracer(100, 1)

    屏幕事件

    listen()|onkey()|onkeyrelease()

    turtle.listen()
    turtle.onkey(fun, key)
    參數:

    • fun:執行的函數

    • key:響應事件

    listen開啟監聽,onkey響應事件。
    代碼示例:

    from turtle import *def f():fd(50)lt(60) listen() onkey(f, "Up")input()

    代碼釋義:
    listen():開啟監聽事件
    onkey(f, "Up"):監聽到鍵盤↑鍵按下,執行f函數
    運行結果:

    ontimer()

    turtle.ontimer(fun, t=0)
    參數:

    • fun:函數
    • t:時間 定時t后調用fun。

    代碼示例:

    from turtle import * def f():fd(200)left(110)ontimer(f,1000) input()

    代碼釋義:
    ontimer(f,1000):1秒后調用f函數
    運行結果:

    輸入方法

    textinput()

    turtle.textinput(title, prompt).
    參數:

    • title:對話框標題
    • prompt:描述輸入文本

    彈出一個用于輸入字符串的對話框窗口。參數title是對話框窗口的標題,propmt是一個主要描述要輸入哪些信息的文本。返回字符串輸入。如果對話框被取消,則返回空。
    代碼示例:

    from turtle import * textinput("turtle", "你好!") input()

    代碼釋義:
    textinput("turtle", "你好!"):文本輸入
    運行結果:

    numinput()

    turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
    參數:

    • title:標題
    • prompt:描述
    • minval:最小值
    • maxval:最大值
    • default:默認值

    彈出一個輸入數字的對話框。title是對話框窗口的標題,prompt是一個主要描述要輸入哪些數字信息的文本。默認值:默認值,最小值:輸入的最小值,最大值:輸入的最大值輸入的數字必須在最小值的范圍內。。如果這些是給定的,則為maxval。否則,將發出提示,對話框將保持打開以進行更正。返回數字輸入。如果對話框被取消,則返回“無”。
    代碼示例:

    from turtle import *numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000) input()

    代碼釋義:
    numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000):接收一個最小值10,最大值10000的數字,標題為Poker,提示為Your stakes,默認值為1000。
    運行結果:

    設置以及特殊方法

    window_height()|window_width()
    獲取屏幕寬高
    代碼示例:

    from turtle import *print(window_height(),window_width()) input()

    運行結果:

    bye()|title()

    turtle.bye()
    窗口關閉。

    from turtle import *print(window_height(),window_width()) input() bye() input()

    title(context)
    context為要顯示的文本,使用title設置標題。

    setup ()

    turtle.setup(width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"])
    參數:

    • width:窗口寬
    • height:窗口高
    • startx:出現位置的x坐標
    • starty:出現位置的y坐標

    代碼示例:

    from turtle import *setup (width=200, height=200, startx=600, starty=400) input()

    運行結果:

    歡迎點贊、收藏、關注;
    如有錯誤可在評論區指出,謝謝!

    總結

    以上是生活随笔為你收集整理的python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。