欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python繪圖魔法之如何用turtle庫(kù)開(kāi)啟你的編程藝術(shù)之旅

 更新時(shí)間:2025年11月20日 09:07:42   作者:https://blog.csdn.net/2303_79015671/article/details/144488852  
Python的turtle庫(kù)是一個(gè)直觀有趣的圖形繪制函數(shù)庫(kù),是python的標(biāo)準(zhǔn)庫(kù)之一,這篇文章主要介紹了Python繪圖魔法之如何用turtle庫(kù)開(kāi)啟你的編程藝術(shù)之旅,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在python存在一個(gè)簡(jiǎn)單易用的繪圖庫(kù),它就是 turtle。

Python 的 turtle 模塊是一種簡(jiǎn)單易用的繪圖庫(kù),適合用于繪制圖形和動(dòng)畫(huà)。它以“海龜”(Turtle)作為繪圖工具,模擬一只“海龜”在平面上移動(dòng),通過(guò)命令控制其運(yùn)動(dòng)軌跡來(lái)繪制各種圖案。

Turtle 特別適合初學(xué)者學(xué)習(xí)編程邏輯和圖形學(xué),因?yàn)樗慕涌谥庇^,操作簡(jiǎn)單。
在本篇博客,我會(huì)帶領(lǐng)著大家學(xué)會(huì) turtle庫(kù)的使用。

1. turtle的常用功能

1.1 基本操作

方法描述
turtle.forward(x)向前移動(dòng) x 像素
turtle.backward(x)向后移動(dòng) x 像素
turtle.left(angle)向左旋轉(zhuǎn)指定角度(單位:度)
turtle.right(angle)向右旋轉(zhuǎn)指定角度(單位:度)
turtle.penup()提起畫(huà)筆(移動(dòng)時(shí)不繪制軌跡)
turtle.pendown()放下畫(huà)筆(移動(dòng)時(shí)繪制軌跡)
turtle.goto(x, y)移動(dòng)到坐標(biāo) (x, y)
turtle.speed(speed)設(shè)置繪圖速度,范圍從 0(最快)到 10
turtle.hideturtle()隱藏海龜圖標(biāo)
turtle.showturtle()顯示海龜圖標(biāo)

1.2 設(shè)置畫(huà)筆屬性

方法描述
turtle.color(color)設(shè)置畫(huà)筆顏色,支持字符串如 "red" 或 RGB
turtle.fillcolor(color)設(shè)置填充顏色
turtle.begin_fill()開(kāi)始填充區(qū)域
turtle.end_fill()結(jié)束填充區(qū)域
turtle.pensize(width)設(shè)置畫(huà)筆寬度

1.3 設(shè)置窗口屬性

方法描述
turtle.title(title)設(shè)置窗口標(biāo)題
turtle.bgcolor(color)設(shè)置窗口背景顏色
turtle.setup(width, height)設(shè)置窗口大小
turtle.reset()重置畫(huà)布和海龜狀態(tài)
turtle.clearscreen()清除整個(gè)屏幕

以上的功能,只要用代碼敲遍就會(huì)完全明白了,下面讓我們來(lái)看具體的案例吧。

2. 繪圖操作

要想學(xué)會(huì)turtle庫(kù)最好的方式就是直接上手,所以介紹函數(shù)時(shí)不會(huì)浪費(fèi)過(guò)多的時(shí)間,只要用這些函數(shù)實(shí)現(xiàn)完以下簡(jiǎn)單的圖形后,對(duì)于turtle的操作也就大概沒(méi)有問(wèn)題了。

2.1 正方形繪制

要繪制正方形,肯定需要知道正方形的圖形,相信大家對(duì)于這個(gè)肯定是沒(méi)有問(wèn)題的,擁有4條相同的邊且4個(gè)角都為直角。這也就是繪制正方形的關(guān)鍵,因?yàn)?code>turtle是模擬一只海龜?shù)牡囊苿?dòng),只要讓海龜?shù)囊苿?dòng)軌跡滿(mǎn)足條件就可以了。

海龜先向前移動(dòng)x單位的距離,然后向右轉(zhuǎn)再移動(dòng)x單位的距離,然后在右轉(zhuǎn)移動(dòng)x單位的距離,最后在右轉(zhuǎn)移動(dòng)x單位的距離。因?yàn)椴僮魃婕傲酥貜?fù),我們可以將其寫(xiě)為循環(huán)。

import turtle #導(dǎo)包

t = turtle.Turtle()#先創(chuàng)建對(duì)象
turtle.title('我是一個(gè)正方形哦~')# 為畫(huà)布添加標(biāo)題(可不寫(xiě))
for _ in range(4):
    t.forward(100) #向前移動(dòng)100個(gè)單位的距離
    t.right(90) #開(kāi)始向右轉(zhuǎn)90度
    
turtle.done() #保持畫(huà)布的存在

讓我們來(lái)看看效果吧

可以發(fā)現(xiàn),初始時(shí)海龜是咋畫(huà)布的正中間的,而且海龜?shù)钠聊幌蛴?,這點(diǎn)需要記得呢。

那么是否可以移動(dòng)海龜,不讓海龜從初始(0,0)開(kāi)始移動(dòng)。

當(dāng)然也是可以的,可以使用turtle.goto(),不過(guò)當(dāng)你使用時(shí),你一定會(huì)發(fā)現(xiàn),怎么海龜還是移動(dòng)過(guò)去的,而且還有移動(dòng)痕跡,這時(shí)候就需要我們?nèi)グ堰@些痕跡去除了,用到函數(shù)turtle.penupturtle.pendown,如果現(xiàn)在我還不想看到那個(gè)海龜turtle.hideturtle()這個(gè)函數(shù)就有作用了。

同時(shí)我們還可以控制速度turtle.speed()以下是功能大雜燴的演示:

import turtle

turtle.title('功能測(cè)試')

t = turtle.Turtle()
t.speed(0) # 設(shè)置速度

t.hideturtle() #隱藏海龜
t.penup() #提起畫(huà)筆
t.goto(-300,300) #跳轉(zhuǎn)到指定坐標(biāo)
t.pendown() #放放下畫(huà)筆
t.speed(1) #重新設(shè)置速度
for _ in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

要注意的是關(guān)于turtle.speed(n)函數(shù),n為0是最快的,然后從1開(kāi)始速度依次增加。

2.2 正多邊形繪制

有了正方形的前車(chē)之鑒,多邊形的繪制就非常簡(jiǎn)單了,比較正方形就正四邊形。

import turtle

turtle.title('是多邊形哦~')

# 以下的goto函數(shù)是為了方便我截圖
t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-350,350)
t.pendown()

sides = 6 #正多邊形的邊數(shù)
for _ in range(sides):
    t.forward(100)
    t.right(360/sides) #因?yàn)槭钦呅?,所以旋轉(zhuǎn)60度
turtle.done()

如果我把邊數(shù)無(wú)限制的增加,是不是就得到了一個(gè)圓呢?

近似看成圓,這其實(shí)是正360邊形。

難道在turtle中繪制圓,只能這樣繪制正多邊形嗎,也不是,下一個(gè)圖形就圓的繪制了。

2.3 同心圓的繪制

繪制同心圓前,圓的繪制還是要知道的。

import turtle

turtle.title('我是圓哦~')

t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-250,200)
t.pendown()

t.circle(100) #繪制一個(gè)半徑為100單位的圓

turtle.done()

接下來(lái)就同心圓的繪制,因?yàn)槭峭膱A,這些圓的圓心都是相同的但是半徑不同。那么只要我寫(xiě)一個(gè)循環(huán)讓圓的半徑不斷地變大集就可以了,為了效果更豐富,我會(huì)讓它們的顏色都不同

import turtle
import random
arr = ['red','green','pink','gold','blue','yellow','black','orange']
n = len(arr)
turtle.title('是同心圓呢~')
t = turtle.Turtle()

t.speed(10)

for radius in range(20,101,20):
    t.penup()
    t.goto(0,-radius) #移動(dòng)到新圓的起點(diǎn)
    t.pendown()
    t.color(arr[random.randint(0,n-1)])
    t.circle(radius)

turtle.done()

畫(huà)了這么多的圖形。還沒(méi)有畫(huà)一個(gè)填充圖形呢,下面讓我們開(kāi)始填充圖形的繪制吧

2.4 填充圖形的繪制

其實(shí)填充圖形,只要加兩個(gè)函數(shù)就可以了,以正方形來(lái)舉例吧

import turtle

turtle.title('要padding了~')

t = turtle.Turtle()
t.speed(0) # 設(shè)置速度
t.hideturtle() #隱藏海龜
t.penup() #提起畫(huà)筆
t.goto(-300,300) #跳轉(zhuǎn)到指定坐標(biāo)
t.pendown() #放放下畫(huà)筆
t.fillcolor('blue') #設(shè)置填充顏色
t.begin_fill()
t.speed(1) #重新設(shè)置速度
for _ in range(4):
    t.forward(100)
    t.right(90)
t.end_fill()
turtle.done()

2.5 五角星的繪制

畫(huà)到現(xiàn)在,turtle庫(kù)的內(nèi)容,大家應(yīng)該都是沒(méi)有問(wèn)題了,可能更重要的就是圖形怎么畫(huà)。就像下面的五角星,你知道五角星怎么畫(huà)嗎?
其實(shí)和正多邊形沒(méi)什么區(qū)別,找到角度就可以了。

import turtle

turtle.title('我是五角星~')
t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-300,300)
t.pendown()

for _ in range(5):
    t.forward(100)
    t.right(144) #五角星的角度

turtle.done()

2.6 螺旋圖案的繪制

螺旋圖形的繪制,重在螺旋,對(duì)于角度要使用不規(guī)則的角度,否則就無(wú)法形成螺旋了。

import turtle

t = turtle.Turtle()
t.speed(0)  # 設(shè)置最快速度

colors = ["red", "blue", "green", "orange", "purple"]

for i in range(1000):
    t.color(colors[i % len(colors)])  # 循環(huán)使用顏色
    t.forward(i * 2)
    t.right(91)  # 稍微不規(guī)則的角度,形成螺旋圖案

turtle.done()

效果還是非常不錯(cuò)了

如果我們使用的90度的規(guī)則角度呢?

有點(diǎn)暈了~

3. turtle的進(jìn)階操作

  • 通過(guò)turtle.shape()改變海龜?shù)男螤睢?/li>
turtle.shape("turtle")  # 改為烏龜形狀
turtle.shape("circle")  # 改為圓形
turtle.shape("triangle")  # 改為三角形
  • 支持簡(jiǎn)單的事件響應(yīng)(如鍵盤(pán)和鼠標(biāo)事件)
import turtle

def move_forward():
    t.forward(50)

def turn_left():
    t.left(45)

t = turtle.Turtle()
screen = turtle.Screen()

screen.listen()  # 開(kāi)始監(jiān)聽(tīng)事件
screen.onkey(move_forward, "Up")  # 按上鍵移動(dòng)
screen.onkey(turn_left, "Left")  # 按左鍵旋轉(zhuǎn)

turtle.done()

4. 總結(jié)

Python 的 turtle 庫(kù)是一個(gè)簡(jiǎn)單易用的繪圖工具,它讓你可以通過(guò)編寫(xiě)代碼,像小烏龜一樣在屏幕上自由創(chuàng)作。無(wú)論是幾何圖形、藝術(shù)圖案,還是動(dòng)態(tài)動(dòng)畫(huà),turtle 都能輕松實(shí)現(xiàn)。它不僅是初學(xué)者學(xué)習(xí)編程邏輯和圖形學(xué)的絕佳入門(mén)選擇,也是開(kāi)發(fā)者探索創(chuàng)意編程的有趣工具。

到此這篇關(guān)于Python繪圖魔法之如何用turtle庫(kù)的文章就介紹到這了,更多相關(guān)Python繪圖turtle庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python內(nèi)建類(lèi)型bytes深入理解

    Python內(nèi)建類(lèi)型bytes深入理解

    這篇文章主要為大家介紹了Python內(nèi)建類(lèi)型bytes的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python的詞法分析與語(yǔ)法分析

    Python的詞法分析與語(yǔ)法分析

    這篇文章主要介紹了Python的詞法分析(Lexical Analysis)與 語(yǔ)法分析(Syntactic Analysis),需要的朋友可以參考下
    2013-05-05
  • selenium3+python3環(huán)境搭建教程圖解

    selenium3+python3環(huán)境搭建教程圖解

    這篇文章主要介紹了selenium3+python3環(huán)境搭建教程圖解,需要的朋友可以參考下
    2018-12-12
  • Python?typing庫(kù)的應(yīng)用與優(yōu)缺點(diǎn)詳解

    Python?typing庫(kù)的應(yīng)用與優(yōu)缺點(diǎn)詳解

    typing是Python類(lèi)型提示庫(kù),用于靜態(tài)檢查和提升代碼清晰度,支持函數(shù)/變量注解、復(fù)雜數(shù)據(jù)結(jié)構(gòu)及泛型,優(yōu)點(diǎn):提高可讀性、IDE支持、早期錯(cuò)誤檢測(cè),缺點(diǎn):學(xué)習(xí)成本、動(dòng)態(tài)描述復(fù)雜,建議:新項(xiàng)目推薦使用,小項(xiàng)目可選
    2025-09-09
  • python安裝numpy&安裝matplotlib& scipy的教程

    python安裝numpy&安裝matplotlib& scipy的教程

    下面小編就為大家?guī)?lái)一篇python安裝numpy&安裝matplotlib& scipy的教程。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑

    Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑

    這篇文章主要介紹了Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python實(shí)現(xiàn)的生成自我描述腳本分享(很有意思的程序)

    Python實(shí)現(xiàn)的生成自我描述腳本分享(很有意思的程序)

    這篇文章主要介紹了Python實(shí)現(xiàn)的生成自我描述腳本分享,很有意思的程序,繞的人有點(diǎn)頭暈,需要的朋友參考下吧
    2014-07-07
  • Python圖像處理必備技巧分享

    Python圖像處理必備技巧分享

    本文系統(tǒng)梳理了Python圖像處理的15項(xiàng)核心技能,涵蓋圖像讀取、顏色轉(zhuǎn)換、濾波、邊緣檢測(cè)、形態(tài)學(xué)操作、特征提取、分割、變換等關(guān)鍵技術(shù),強(qiáng)調(diào)這些基礎(chǔ)技能的組合應(yīng)用可實(shí)現(xiàn)復(fù)雜圖像處理任務(wù),需要的朋友可以參考下
    2025-05-05
  • Django之使用內(nèi)置函數(shù)和celery發(fā)郵件的方法示例

    Django之使用內(nèi)置函數(shù)和celery發(fā)郵件的方法示例

    這篇文章主要介紹了Django之使用內(nèi)置函數(shù)和celery發(fā)郵件的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python3簡(jiǎn)單爬蟲(chóng)抓取網(wǎng)頁(yè)圖片代碼實(shí)例

    Python3簡(jiǎn)單爬蟲(chóng)抓取網(wǎng)頁(yè)圖片代碼實(shí)例

    這篇文章主要介紹了Python3簡(jiǎn)單爬蟲(chóng)抓取網(wǎng)頁(yè)圖片代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論