Python繪圖之turtle庫的基礎(chǔ)語法使用
前言
Python語言的turtle庫是一個(gè)直觀有趣的圖形繪制函數(shù)庫,是python語言標(biāo)準(zhǔn)庫之一。
turtle庫也叫海龜庫,是turtle繪圖體系的Python實(shí)現(xiàn)。turtle庫是Python語言的標(biāo)準(zhǔn)庫之一,是入門級(jí)的圖形繪制函數(shù)庫。
turtle繪圖體系:也叫海龜繪圖系統(tǒng),它是在1969年誕生,主要用于程序設(shè)計(jì)入門的一種繪圖方式。
Python計(jì)算生態(tài) = 標(biāo)準(zhǔn)庫 + 第三方庫
標(biāo)準(zhǔn)庫:隨解釋器直接安裝到操作系統(tǒng)中的功能模塊。
第三方庫:需要經(jīng)過安裝才能使用的功能模塊。
turtle官方文檔:https://docs.python.org/3/library/turtle.html
turtle庫的繪圖原理是在一個(gè)橫軸為x、縱軸為y的坐標(biāo)平面中,以原點(diǎn)(0,0)位置為開始點(diǎn),根據(jù)一組函數(shù)指令的控制來移動(dòng),從而在它爬行的路徑上繪制圖形。

一、turtle庫的導(dǎo)入
方法一:import turtle
方法二:import turtle as t
方法三:from turtle import *
二、繪圖命令介紹
1. 畫布屬性設(shè)置
| 語法 | 含義 |
| turtle.screensize(width,height,bg) | 設(shè)置畫布的寬、高、背景顏色 |
| turtle.setup(width,height,startx,starty) | 設(shè)置畫布顯示窗口的大小、位置,前兩個(gè)參數(shù)為窗口大小,后兩個(gè)參數(shù)為起始點(diǎn)位置 |
2. 畫筆屬性設(shè)置
| 語法 | 含義 |
| turtle.pensize(width) | 設(shè)置當(dāng)前畫筆線條的寬度為width像素 |
| turtle.colormode(1.0[255]) | 設(shè)置畫筆顏色模式 |
| turtle.pencolor(colorstring) | 設(shè)置畫筆的顏色,參數(shù)colorstring可以是"green"、"red"、"blue"、“yellow”等英文字符串 |
| turtle.speed(5) | 設(shè)置畫筆的移動(dòng)速度,畫筆繪制的速度范圍在[0,10]整數(shù)之間,數(shù)字越大,畫筆移動(dòng)的速度越快。 |

3. 移動(dòng)畫筆和轉(zhuǎn)角繪圖
| 語法 | 含義 |
| turtle.penup()/pu()/up() | 提起畫筆,不繪圖 |
| turtle.pendown()/pd()/down() | 畫筆移動(dòng)時(shí)繪制圖形 |
| turtle.forward(100)/fd(100) | 畫筆向當(dāng)前方向移動(dòng)100像素距離 |
| turtle.backward(100)/bk(100) | 畫筆向相反方向移動(dòng)100像素距離 |
| turtle.right(45)/rt(45) | 畫筆順時(shí)針移動(dòng)45度 |
| turtle.left(45)/lt(45) | 畫筆逆時(shí)針移動(dòng)45度 |
| turtle.setheading(45)/seth(45) | 設(shè)置當(dāng)前畫筆朝向?yàn)?5度 |
| turtle.goto(x,y) | 移動(dòng)畫筆到指定坐標(biāo)位置 |
| turtle.hideturtle() | 隱藏畫筆turtle形狀 |
| turtle.showturtle() | 顯示畫筆turtle形狀 |
實(shí)例代碼
# coding:utf8
import turtle as t
t.setup(500, 500) # 設(shè)置畫布大小
t.reset() # 清空窗口
t.pensize(4) # 設(shè)置畫筆大小為4
# 繪制外層正方形
t.penup() # 提起畫筆
t.pencolor("red") # 設(shè)置畫筆顏色
t.goto(-200, -200) # 設(shè)置外層正方形起點(diǎn)坐標(biāo)
t.pendown()
t.forward(400) # 外層正方形邊長為400像素
t.left(90)
t.forward(400)
t.left(90)
t.forward(400)
t.left(90)
t.forward(400)
# 繪制中間正方形
t.penup()
t.pencolor("yellow")
t.goto(-150, -150) # 中間正方形起點(diǎn)坐標(biāo)
t.pendown()
t.seth(0) # 重新設(shè)定畫筆角度為0°
t.forward(300)
t.left(90)
t.forward(300)
t.left(90)
t.forward(300)
t.left(90)
t.forward(300)
# 繪制內(nèi)層中方形
t.penup()
t.pencolor("blue")
t.goto(-100, -100) # 內(nèi)層正方形起點(diǎn)坐標(biāo)
t.pendown()
t.seth(0)
t.forward(200)
t.left(90)
t.forward(200)
t.left(90)
t.forward(200)
t.left(90)
t.forward(200)
t.done()

4. 圖形繪制與圖形填充
| 語法 | 含義 |
| turtle.circle(5,[extent,steps]) | 繪制半徑為5的圓形 |
| turtle.color(pencolor,fillcolor) | 同時(shí)設(shè)置畫筆顏色(邊框顏色)和填充顏色 |
| turtle.begin_fill() | 以當(dāng)前為起點(diǎn),開始填充顏色 |
| turtle.end_fill() | 以當(dāng)前為終點(diǎn),結(jié)束填充圖形 |
| turtle.done() | 繪圖結(jié)束后,保留窗口 |
代碼實(shí)例
# coding:utf8
import turtle
turtle.setup(500, 500)
turtle.reset()
turtle.pensize(5)
turtle.penup()
turtle.goto(0, -200)
turtle.pendown()
# 繪制紅邊框藍(lán)填充顏色的大圓
turtle.color("red", "blue")
turtle.begin_fill()
turtle.circle(200)
turtle.end_fill()
# 繪制紅邊框綠填充顏色的大圓
turtle.color("red", "green")
turtle.begin_fill()
turtle.circle(150)
turtle.end_fill()
# 繪制紅邊框黃填充顏色的大圓
turtle.color("red", "yellow")
turtle.begin_fill()
turtle.circle(100)
turtle.end_fill()
turtle.done()

三、turtle繪圖實(shí)例:繪制太陽花
import turtle as t # 導(dǎo)入Turtle庫,并指定導(dǎo)入庫的別名為t
t.color("red", "yellow") # 同時(shí)設(shè)置pencolor=red, fillcolor=yellow
t.speed(10) # 設(shè)置畫筆繪制的速度為10
t.begin_fill() # 準(zhǔn)備開始填充圖形
for x in range(50): # 利用for循環(huán)繪制太陽花
t.forward(200) # 向當(dāng)前畫筆方向移動(dòng)200像素
t.left(170) # 逆時(shí)針旋轉(zhuǎn)170度
t.end_fill() # 填充完成
t.done() # 繪制完成后窗口不退出

總結(jié)
到此這篇關(guān)于Python繪圖之turtle庫基礎(chǔ)語法使用的文章就介紹到這了,更多相關(guān)Python繪圖turtle庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用turtle庫繪制奧運(yùn)五環(huán)
turtle也叫海龜,是turtle繪圖體系的python實(shí)現(xiàn),這篇文章主要介紹了python使用turtle庫繪制奧運(yùn)五環(huán),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-02-02
Pygame實(shí)戰(zhàn)之迷宮游戲的實(shí)現(xiàn)
玩迷宮游戲長大的我們,欣慰地看到,下一代仍熱愛著這個(gè)經(jīng)典游戲。本文將通過Python中的Pygame庫制作這一經(jīng)典的游戲,需要的可以參考一下2022-02-02
使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程
這篇文章主要介紹了使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程,包括設(shè)置斷點(diǎn)來修改代碼等、對(duì)于Python團(tuán)隊(duì)項(xiàng)目工作有一定幫助,需要的朋友可以參考下2015-03-03
Python實(shí)現(xiàn)可自定義大小的截屏功能
這篇文章主要介紹了Python實(shí)現(xiàn)可自定義大小的截屏功能,結(jié)合實(shí)例形式分析了Python針對(duì)指定范圍的截圖、保存等功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01
Pandas DataFrame實(shí)現(xiàn)任意位置插入一列或一行
Pandas是Python中最流行的數(shù)據(jù)處理和分析庫之一,在數(shù)據(jù)分析過程中,有時(shí)候需要在Dataframe中插入新的數(shù)據(jù)列,本文主要介紹了Pandas DataFrame實(shí)現(xiàn)任意位置插入一列或一行,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
python+selenium自動(dòng)化實(shí)戰(zhàn)攜帶cookies模擬登陸微博
這篇文章主要介紹了python+selenium自動(dòng)化實(shí)戰(zhàn)攜帶cookies模擬登陸微博,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Pygame框架實(shí)現(xiàn)飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了Pygame框架實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08

