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

python 簡單的繪圖工具turtle使用詳解

 更新時間:2017年06月21日 08:47:17   作者:NowGood  
這篇文章主要介紹了python 簡單的繪圖工具turtle使用詳解的相關(guān)資料,需要的朋友可以參考下

目錄

1. 畫布(canvas)

  1.1 設(shè)置畫布大小

2. 畫筆

  2.1 畫筆的狀態(tài)
  2.2 畫筆的屬性
  2.3 繪圖命令

3. 命令詳解
4. 繪圖舉例

  4.1 太陽花
  4.2 繪制小蟒蛇
  4.3 繪制五角星

python2.6版本中后引入的一個簡單的繪圖工具,叫做海龜繪圖(Turtle Graphics),turtle庫是python的內(nèi)部庫,使用導入即可 import turtle

type(turtle)

>>> type(turtle)
<class 'module'>
>>> type(int)
<class 'type'>
>>> 

先說明一下turtle繪圖的基礎(chǔ)知識:

1. 畫布(canvas)

畫布就是turtle為我們展開用于繪圖區(qū)域, 我們可以設(shè)置它的大小和初始位置

1.1 設(shè)置畫布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None)
參數(shù)分別為畫布的寬(單位像素), 高, 背景顏色

如:

turtle.screensize(800, 600, "green")
turtle.screensize() #返回默認大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

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

如:

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

2. 畫筆 2.1 畫筆的狀態(tài)

在畫布上,默認有一個坐標原點為畫布中心的坐標軸, 坐標原點上有一只面朝x軸正方向小烏龜. 這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle繪圖中, 就是使用位置方向描述小烏龜(畫筆)的狀態(tài)

2.2 畫筆的屬性

畫筆(畫筆的屬性,顏色、畫線的寬度)
1) turtle.pensize():設(shè)置畫筆的寬度;
2) turtle.pencolor(); 沒有參數(shù)傳入,返回當前畫筆顏色,傳入?yún)?shù)設(shè)置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組,

  >>> pencolor('brown')
  >>> tup = (0.2, 0.8, 0.55)
  >>> pencolor(tup)
  >>> pencolor()
  '#33cc8c'
3) turtle.speed(speed): 設(shè)置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數(shù), 數(shù)字越大越快

2.3 繪圖命令

操縱海龜繪圖有著許多的命令,這些命令可以劃分為3種:一種為運動命令,一種為畫筆控制命令,還有一種是全局控制命令

(1)畫筆運動命令:

命令 說明 turtle.forward(distance) 向當前畫筆方向移動distance像素長 turtle.backward(distance) 向當前畫筆相反方向移動distance像素長度 turtle.right(degree) 順時針移動degree° turtle.left(degree) 逆時針移動degree° turtle.pendown() 移動時繪制圖形,缺省時也為繪制 turtle.goto(x,y) 將畫筆移動到坐標為x,y的位置 turtle.penup() 移動時不繪制圖形,提起筆,用于另起一個地方繪制時用 turtle.speed(speed) 畫筆繪制的速度范圍[0,10]整數(shù) turtle.circle() 畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓

(2)畫筆控制命令:

命令 說明 turtle.pensize(width) 繪制圖形時的寬度 turtle.pencolor() 畫筆顏色 turtle.fillcolor(colorstring) 繪制圖形的填充顏色 turtle.color(color1, color2) 同時設(shè)置pencolor=color1, fillcolor=color2 turtle.filling() 返回當前是否在填充狀態(tài) turtle.begin_fill() 準備開始填充圖形 turtle.end_fill() 填充完成; turtle.hideturtle() 隱藏箭頭顯示; turtle.showturtle() 與hideturtle()函數(shù)對應(yīng)

(3) 全局控制命令

命令 說明 turtle.clear() 清空turtle窗口,但是turtle的位置和狀態(tài)不會改變 turtle.reset() 清空窗口,重置turtle狀態(tài)為起始狀態(tài) turtle.undo() 撤銷上一個turtle動作 turtle.isvisible() 返回當前turtle是否可見 stamp() 復制當前圖形 turtle.write(s[,font=("font-name",font_size,"font_type")]) 寫文本,s為文本內(nèi)容,font是字體的參數(shù),里面分別為字體名稱,大小和類型;font為可選項, font的參數(shù)也是可選項 3. 命令詳解

3.1 turtle.circle(radius, extent=None, steps=None)

描述: 以給定半徑畫圓
參數(shù):
radius(半徑); 半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓
extent(弧度) (optional);
steps (optional) (做半徑為radius的圓的內(nèi)切正多邊形,多邊形邊數(shù)為steps)

舉例:

circle(50) # 整圓;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圓

4. 繪圖舉例 4.1 太陽花

import turtle as t
import time
t.color("red", "yellow")
t.speed(10)
t.begin_fill()
for _ in range(50):
  t.forward(200)
  t.left(170)
end_fill()
time.sleep(1)
4.2 繪制小蟒蛇

import turtle

def drawSnake(rad, angle, len, neckrad):
  for _ in range(len):
    turtle.circle(rad, angle)
    turtle.circle(-rad, angle)
  turtle.circle(rad, angle/2)
  turtle.forward(rad/2) # 直線前進
  turtle.circle(neckrad, 180)
  turtle.forward(rad/4)

if __name__ == "__main__":
  turtle.setup(1500, 1400, 0, 0)
  turtle.pensize(30) # 畫筆尺寸
  turtle.pencolor("green")
  turtle.seth(-40)  # 前進的方向
  drawSnake(70, 80, 2, 15)

4.3 繪制五角星

import turtle
import time


turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")
 
turtle.begin_fill()

for _ in range(5):
  turtle.forward(200)
  turtle.right(144)
turtle.end_fill()
time.sleep(2)

turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done", font=('Arial', 40, 'normal'))
time.sleep(1)

相關(guān)文章

  • python是先運行metaclass還是先有類屬性解析

    python是先運行metaclass還是先有類屬性解析

    這篇文章主要為大家介紹了python是先運行metaclass還是先有類屬性的問題原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python輸出國際象棋棋盤的實例分享

    python輸出國際象棋棋盤的實例分享

    在本篇文章里小編給大家整理的是一篇關(guān)于python輸出國際象棋棋盤的實例詳解,有興趣的朋友們可以參考下。
    2020-11-11
  • Python使用SciPy庫的插值方法及示例詳解

    Python使用SciPy庫的插值方法及示例詳解

    SciPy是一個基于NumPy構(gòu)建的Python模塊,它集成了多種數(shù)學算法和函數(shù),這篇文章主要為大家詳細介紹了如何使用SciPy庫實現(xiàn)插值,需要的可以了解下
    2024-03-03
  • Keras實現(xiàn)將兩個模型連接到一起

    Keras實現(xiàn)將兩個模型連接到一起

    這篇文章主要介紹了Keras實現(xiàn)將兩個模型連接到一起,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中的正則表達式與JSON數(shù)據(jù)交換格式

    Python中的正則表達式與JSON數(shù)據(jù)交換格式

    正則表達式 是一個特殊的字符序列,一個字符串是否與我們所設(shè)定的這樣的字符序列,相匹配快速檢索文本、實現(xiàn)替換文本的操作。這篇文章主要介紹了Python中的正則表達式與JSON ,需要的朋友可以參考下
    2019-07-07
  • 詳解python中的變量與注釋

    詳解python中的變量與注釋

    在 Python 中,變量是用于存儲數(shù)據(jù)的名稱,它可以保存不同類型的數(shù)據(jù),在Python中,有兩種類型的注釋:單行注釋和多行注釋,本文就給大家詳細的介紹一下python中的變量與注釋,需要的朋友可以參考下
    2023-08-08
  • Python 命令行非阻塞輸入的小例子

    Python 命令行非阻塞輸入的小例子

    很久很久以前,系windows平臺下,用C語言寫過一款貪食蛇游戲,cmd界面,用kbhit()函數(shù)實現(xiàn)非阻塞輸入。系windows平臺下用python依然可以調(diào)用msvcrt.khbit實現(xiàn)非阻塞監(jiān)聽。但系喺linux下面就冇呢支歌仔唱
    2013-09-09
  • python+mysql實現(xiàn)簡單的web程序

    python+mysql實現(xiàn)簡單的web程序

    上篇文章我們介紹了簡單的Python web程序,實現(xiàn)hello world,本文我們來結(jié)合一下mysql,實現(xiàn)對數(shù)據(jù)庫的簡單操作,希望對大家有所幫助
    2014-09-09
  • pandas基于時間序列的固定時間間隔求均值的方法

    pandas基于時間序列的固定時間間隔求均值的方法

    今天小編就為大家分享一篇pandas基于時間序列的固定時間間隔求均值的方法,具有好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python 從文件夾抽取圖片另存的方法

    python 從文件夾抽取圖片另存的方法

    今天小編就為大家分享一篇python 從文件夾抽取圖片另存的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論