亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中turtle繪圖模塊的詳細(xì)講解

 更新時間:2022年02月25日 11:11:52   作者:軟件開發(fā)技術(shù)愛好者  
Turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,下面這篇文章主要給大家介紹了關(guān)于Python中turtle繪圖模塊的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,可以輕松地繪制出精美的形狀和圖案,很適合用來引導(dǎo)孩子學(xué)習(xí)編程。

turtle模塊(module)是Python語言中的標(biāo)準(zhǔn)模塊(內(nèi)置模塊)之一。

【在Python中,模塊也稱作庫(Library)】

turtle基本概念

畫布(canvas),turtle模塊展開用于繪圖的區(qū)域,可以設(shè)置其大小和初始位置。

turtle 中默認(rèn)的模式為 standard ,其坐標(biāo)原點在畫布(canvas)中心,單位為象素(pixel)。turtle空間坐標(biāo)體系分為位置坐標(biāo)系和角度坐標(biāo)系,畫布默認(rèn)大小(400, 300),對于位置坐標(biāo)系而言,與數(shù)學(xué)中的直角坐標(biāo)系相同,正中心的坐標(biāo)就是(0,0),你可以想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標(biāo)系原點,(0,0)位置開始,它根據(jù)一組函數(shù)指令的控制,在這個平面坐標(biāo)系中移動,從而在它爬行的路徑上繪制了圖形。goto函數(shù)有兩個參數(shù)X,Y,指的是讓在任何位置的海龜去到達(dá)某一個坐標(biāo)的位置。對于角度坐標(biāo)系而言,以x軸正方向為0度,逆時針為角度正值,順時針為角度負(fù)值,也與數(shù)學(xué)中的相同。

調(diào)出模塊

import turtle

turtle定義窗體(窗口)的大小和位置的函數(shù)setup()

setup()函數(shù)改變窗體(窗口)的大小,確定畫布空間的大小及在屏幕中的位置,格式:

turtle.setup (width,height,startx,starty)

width, height: 輸入寬和高為整數(shù)時, 表示像素; 為小數(shù)時, 表示占據(jù)電腦屏幕的比例;(startx, starty): 這一坐標(biāo)表示 矩形窗口左上角頂點的位置, 如果為空,則窗口位于屏幕中心。

參見下圖:

單位為像素。

屏幕的的左上角為原點。

例、

import turtle
turtle.setup(800,500,0,0)

參見如下示意圖:

又如:

turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)

turtle定義定義了畫布的大小和背景色函數(shù)screensize()

screensize()函數(shù)改變畫布的大小和背景色,格式:

turtle.screensize(canvwidth=None, canvheight=None, bg=None)

參數(shù)分別為畫布的寬(單位像素), 高, 背景顏色

如:

import turtle
turtle.screensize(480, 360,"green")

窗體和畫布不是一個概念。如果畫布大于窗體,窗體會出現(xiàn)滾動條,如果畫布小于窗體,畫布會填充整個窗體。想要改變窗體(窗口)的大小,不是用screensize函數(shù),要用setup函數(shù)。

窗體大于畫布,畫布填充了窗體。測試代碼:

import turtle
turtle.setup(300,200)
turtle.screensize(200,100,"blue")
turtle.shape("turtle") #出現(xiàn)小烏龜

運行之,參見下圖:

畫布大于窗體,窗體出現(xiàn)滾動條。測試代碼:

import turtle
turtle.setup(300,200)
turtle.screensize(500,400,"blue")
turtle.shape("turtle") #出現(xiàn)小烏龜

運行之,參見下圖:

引用turtle模塊(庫)方法

方法1

import turtle
turtle.circle(10) #使用turtle

方法2

from turtle import *
circle(10) #使用turtle

方法3

import turtle as t
t.circle(10) #使用turtle

turtle庫包含近百個功能函數(shù)。在此我們介紹一些常用的函數(shù):

繪制狀態(tài)函數(shù):pendown()、penup()、pensize()

函數(shù)名

別名

參數(shù)說明

功能/作用

pendown()

pd() 或down()

落下畫筆,之后移動畫筆繪制。

penup()

pu()或up()

抬起畫筆,之后移動畫筆不繪制。

pensize(width)

width(width)

width:設(shè)置的畫筆線條寬度,如果為None或者為空,則返回當(dāng)前畫筆寬度

設(shè)置畫筆寬度,當(dāng)無參數(shù)輸入時返回當(dāng)前畫筆寬度。

顏色控制函數(shù):color()、pencolor()、begin_fill()、end_fill();

函數(shù)名

別名

參數(shù)說明

功能/作用

color(colorstring)

color((r,g,b))

color(r,g,b)

或 color(colorstr1,colorstr2)或 color((r1,g1,b1),(r2,g2,b2))

 

當(dāng)畫筆和填充顏色相同時使用1個參數(shù);

當(dāng)畫筆和填充顏色不同時使用2個參數(shù)。

 

colorstring:表示顏色的字符串,例如:“Purple","red","blue"等。還支持十六進(jìn)制顏色值,如:"#6666CC"等

(r,g,b):顏色對應(yīng)RGB的值,如綠色用rgb(0, 128, 0)?!咀ⅰ?/p>

返回設(shè)置畫筆或填充顏色,當(dāng)無參數(shù)輸入時返回當(dāng)前畫筆及填充顏色。

pencolor(colorstring)

pencolor((r,g,b))

pencolor(r,g,b)

 

colorstring:表示顏色的字符串,例如:“Purple","red","blue"等。還支持十六進(jìn)制顏色值,如:"#6666CC"等

 

(r,g,b):顏色對應(yīng)的RGB的值,如綠色用rgb(0, 128, 0)?!咀ⅰ?/p>

返回或設(shè)置畫筆顏色,當(dāng)無參數(shù)輸入時返回當(dāng)前畫筆顏色。

begin_fill()

 

在繪制帶有填充色彩圖形之前調(diào)用,表示填充開始。

,end_fill()

 

在繪制帶有填充色彩圖形之后調(diào)用,表示填充結(jié)束。

fillcolor(colorstring)

fillcolor((r,g,b))

fillcolor(r,g,b)

 

colorstring:表示顏色的字符串,例如:“Purple","red","blue"等。還支持十六進(jìn)制顏色值,如:"#6666CC"等

 

(r,g,b):顏色對應(yīng)的RGB的值,如綠色用rgb(0, 128, 0)?!咀ⅰ?/td>
填充色彩
    

【注】

turtle模塊(庫)中用字符串表示顏色,如

"red"表示紅色

"black"表示黑色

"blue"表示藍(lán)色

"orange"表示橘黃色

"green"表示綠色

"gold"表示金色

"yellow"表示紅色

"pink"表示粉色

還支持十六進(jìn)制顏色值,如:"#6666CC"、"#FF0000"、"#CCFFFF"等。

turtle模塊(庫)中用RGB三原色表示顏色

關(guān)于RGB三原色表示顏色簡介

當(dāng)R值取滿為255,G與B都取0時表示紅色,當(dāng)G值取滿為255,R與B都取0時表示綠色,當(dāng)B值取滿為255,R與G都取0時表示藍(lán)色,其他情況所得顏色即為紅(R)、綠(G)、藍(lán)(B)三個顏色通道的疊加顏色。常見疊加顏色如下表

顏色名稱

紅色值 Red

綠色值 Green

藍(lán)色值 Blue

黑色

0

0

0

藍(lán)色

0

0

255

綠色

0

255

0

青色

0

255

255

紅色

255

0

0

洋紅色(亮紫色)

255

0

255

黃色

255

255

0

白色

255

255

255

用R、G、B對應(yīng)的三元組來表示顏色。例如:(255,0,0)表示紅色,(0,255,0)表示綠色。

運動控制函數(shù):forward()、backward()、right()、left()、setheading()、goto()、circle()

函數(shù)名

別名

參數(shù)說明

功能/作用

forward(distance)

fd(distance)

distance:行進(jìn)距離的像素值。當(dāng)值為負(fù)數(shù)時,表示向相反方向前進(jìn)。

向畫筆當(dāng)前行進(jìn)方向前進(jìn)distance距離。

backward(distance)

back(distance)

bk(distance)

distance:行進(jìn)距離的像素值。當(dāng)值為負(fù)值時,表示向前進(jìn)方向行進(jìn)。backward()函數(shù)不改變畫筆的運動方向,相當(dāng)于后退著行進(jìn)。

向當(dāng)前畫筆前進(jìn)方向的反方向行進(jìn)distance距離。

right(angle)

rt(angle)

angle:角度整數(shù)值。

以當(dāng)前行進(jìn)角度為原點,行進(jìn)方向向右改變相對角度值angle

left(angle)

lt(angle)

angle:角度的整數(shù)值。

以當(dāng)前行進(jìn)角度為原點,行進(jìn)方向向左改變相對角度值angle。

setheading(to_angle)

seth(to_angle)

to_angle:角度的整數(shù)值。

作用:設(shè)置畫筆當(dāng)前行進(jìn)方向的角度為to_angle,該角度為絕對方向角度值。

goto(x,y)

 

x,y:x為標(biāo)系的絕對橫坐標(biāo)值,y為置為坐標(biāo)系的絕對縱坐標(biāo)值。

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

circle(radius[,extent=None])

[還有一個參數(shù),在此未講]

 

radius:弧形半徑,當(dāng)值為正數(shù)時,半徑在畫筆左側(cè)。當(dāng)值為負(fù)數(shù)時,半徑在畫筆右側(cè)。

extent:繪制弧形角度。當(dāng)不給該參數(shù)或該參數(shù)為None時,繪制整個圓形。當(dāng)extent的值為正數(shù)時,順當(dāng)前方向繪制弧形;當(dāng)extent的值為負(fù)數(shù)時,逆當(dāng)前方向繪制弧形。

根據(jù)半徑radius繪制extent角度的弧形。

 

【angle即角度,也可以為負(fù)數(shù)。distance即距離,也可以為負(fù)數(shù)】

除此之外,再簡要介紹一些函數(shù)如下

畫筆控制函數(shù)

函數(shù)名

說明

turtle.shape(name)

name指定烏龜狀:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”。默認(rèn)"classic"

如turtle.shape('turtle')

turtle.hideturtle()

隱藏畫筆的turtle形狀

turtle.showturtle()

顯示畫筆的turtle形狀

全局控制函數(shù)

函數(shù)名

說明

turtle.clear()

清空turtle窗口,但是turtle的位置和狀態(tài)不會改變

turtle.reset()

清空窗口,重置turtle狀態(tài)為起始狀態(tài)

turtle.undo()

撤銷上一個turtle動作

turtle.isvisible()

返回當(dāng)前turtle是否可見

stamp()

復(fù)制當(dāng)前圖形

turtle.write(s [,font=("font-name",font_size,"font_type")])

寫文本,s為文本內(nèi)容,font是字體的參數(shù),分別為字體名稱,大小和類型;font為可選項,font參數(shù)也是可選項。字體名稱:"Arial"、"宋體"、"楷體"等

例、寫字函數(shù)write()的使用

import turtle
turtle.penup() #抬起畫筆
turtle.goto(-200,100) #移動位置
turtle.write("好好學(xué)習(xí),天天向上",font=("楷體",36))

其它函數(shù)

函數(shù)名

說明

turtle.mainloop()

turtle.done()

啟動事件循環(huán) -調(diào)用Tkinter的mainloop函數(shù)。

必須是烏龜圖形程序中的最后一個語句。

turtle.mode(mode=None)

設(shè)置烏龜模式(“standard”,“logo”或“world”)并執(zhí)行重置。如果沒有給出模式,則返回當(dāng)前模式。

模式

初始龜標(biāo)題

正角度

standard

向右(東)

逆時針

logo

向上(北)

順時針

turtle.delay(delay=None)

設(shè)置或返回以毫秒為單位的繪圖延遲。

turtle.begin_poly()

開始記錄多邊形的頂點。當(dāng)前的烏龜位置是多邊形的第一個頂點。

turtle.end_poly()

停止記錄多邊形的頂點。當(dāng)前的烏龜位置是多邊形的最后一個頂點。將與第一個頂點相連。

turtle.get_poly()

返回最后記錄的多邊形。

使用Python的turtle(海龜)模塊畫圖步驟

第一步:讓Python引入turtle模塊,引入模塊就是告訴Python你想要用它。

import turtle

第二步:創(chuàng)建畫布,若使用默認(rèn)可跳過此步。

第三步:理順?biāo)悸?,選取函數(shù)繪圖實現(xiàn)意圖,這是最重要的一步,可能需要多次試驗。

下面給出幾個例子

例1、繪制梯形

此梯形繪制在第四象限,所以梯形形每個頂點的坐標(biāo)中,x坐標(biāo)為正,y坐標(biāo)為負(fù)。四個點的坐標(biāo)分別選擇為D(100,-100)、E(200,-100)、F(250,-200)、G(50,-200)??梢娝L制的直角三角形DE=100,GF=200。由于D點的y坐標(biāo)與E點的y坐標(biāo)相等,所以,DE平行于x軸,由于G點的y坐標(biāo)與F點的y坐標(biāo)相等,所以,GF也平行于x軸。代碼為:

import turtle
turtle.up()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.goto(100,-100)
turtle.down()
turtle.goto(200,-100)
turtle.goto(250,-200)
turtle.goto(50,-200)
turtle.goto(100,-100)
turtle.end_fill()

思考一下,如何將梯形繪制在正中間?

例2、使用circle()函數(shù)的例子

import turtle
turtle.pencolor("red")
turtle.circle(50) #整圓
turtle.pencolor("blue")
turtle.circle(120, 180) #半圓
turtle.pencolor("green")
turtle.circle(80,steps=3) #三角形

例3、畫五角星

import turtle 
  
turtle.pensize(5) 
turtle.pencolor("yellow") 
turtle.fillcolor("red") 
  
turtle.begin_fill() 
for i in range(5):
    turtle.forward(200)
    turtle.right(144)
turtle.end_fill() 
   
turtle.hideturtle() 

總結(jié)

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

相關(guān)文章

  • Python 在OpenCV里實現(xiàn)仿射變換—坐標(biāo)變換效果

    Python 在OpenCV里實現(xiàn)仿射變換—坐標(biāo)變換效果

    這篇文章主要介紹了Python 在OpenCV里實現(xiàn)仿射變換—坐標(biāo)變換效果,本文通過一個例子給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python中[?]、[:]和[::]的用法總結(jié)

    Python中[?]、[:]和[::]的用法總結(jié)

    [:]與[::]語法是通用序列操作(Common Sequence Operations)其中的兩個,下面這篇文章主要給大家介紹了關(guān)于Python中[?]、[:]和[::]用法的相關(guān)資料,文中通過實例代碼介紹的非常全面,需要的朋友可以參考下
    2023-06-06
  • 深入解析PYTHON?虛擬機(jī)令人拍案叫絕的字節(jié)碼設(shè)計

    深入解析PYTHON?虛擬機(jī)令人拍案叫絕的字節(jié)碼設(shè)計

    這篇文章主要為大家介紹了PYTHON虛擬機(jī)中令人拍案叫絕的字節(jié)碼設(shè)計深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 可能是史上最細(xì)的python中import詳解

    可能是史上最細(xì)的python中import詳解

    import在python中的意思是用來調(diào)用模塊的,下面這篇文章主要給大家介紹了關(guān)于python中import詳解的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • 對python過濾器和lambda函數(shù)的用法詳解

    對python過濾器和lambda函數(shù)的用法詳解

    今天小編就為大家分享一篇對python過濾器和lambda函數(shù)的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • tensorflow實現(xiàn)softma識別MNIST

    tensorflow實現(xiàn)softma識別MNIST

    這篇文章主要為大家詳細(xì)介紹了tensorflow實現(xiàn)softma識別MNIST,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • pandas高效讀取大文件的示例詳解

    pandas高效讀取大文件的示例詳解

    使用?pandas?進(jìn)行數(shù)據(jù)分析時,第一步就是讀取文件,所以這篇文章主要來和大家討論一下pandas如何高效讀取大文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-01-01
  • python matplotlib畫圖實例代碼分享

    python matplotlib畫圖實例代碼分享

    這篇文章主要介紹了python matplotlib畫圖實例代碼分享,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • python中reshape函數(shù)用法示例詳解

    python中reshape函數(shù)用法示例詳解

    reshape函數(shù)是Numpy庫中的一個函數(shù),可以用于改變一個數(shù)組的形狀,例如將一個二維數(shù)組轉(zhuǎn)換成一個三維數(shù)組,這篇文章主要介紹了python中reshape函數(shù)用法詳解,需要的朋友可以參考下
    2023-09-09
  • 幫你快速上手Jenkins并實現(xiàn)自動化部署

    幫你快速上手Jenkins并實現(xiàn)自動化部署

    在未學(xué)習(xí)Jenkins之前,只是對Jenkins有一個比較模糊的理解,即Jenkins是一個自動化構(gòu)建項目發(fā)布的工具,可以實現(xiàn)代碼->github或者gitlab庫->jenkins自動部署->訪問的整體的過程,而無需人為重新打包,今天就帶大家詳細(xì)了解一下,幫你快速上手Jenkins,需要的朋友可以參考下
    2021-06-06

最新評論