第四章 python的turtle庫的運用


我們可以嘗試用python的自帶turtle庫繪制一條蟒蛇

首先我們設計一下蟒蛇的基本形狀

我們先把這段蟒蛇繪制的實例代碼貼出來,各位可以在自己的本地運行一下看看效果,然后我們再繼續分析代碼:

 1 #PythonDraw.py
 2 import turtle
 3 turtle.setup(650, 350, 200, 200)
 4 turtle.penup()
 5 turtle.fd(-250)
 6 turtle.pendown()
 7 turtle.pensize(25)
 8 turtle.pencolor("purple")
 9 turtle.seth(-40)
10 for i in range(4):
11     turtle.circle(40, 80)
12     turtle.circle(-40, 80)
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()

程序關鍵:import保留字,引入了一個繪圖體系,名字叫:turtle,就是海龜

學會海龜繪圖體系之后,我們可以完成更加復雜的繪制:五角星繪制、國旗繪制、機器貓繪制

掌握了繪制一條線的方法,就可以繪制整個世界

 

turtle庫概述:

turtle庫的turtle繪圖體系的python實現

turtle繪圖體系:1969年誕生,主要用於程序設計入門

        python的標准庫之一,入門級的圖形繪制函數庫

python的計算生態:python標准庫+第三方庫

標准庫:隨解釋器直接安裝到操作系統的功能模塊

第三方庫:需要經過安裝才能使用的功能模塊

 

turtle的原理:

turtle是一種真實的存在,有一只海龜,在窗體的正中心,在畫布上游走

走過的軌跡形成了繪制的圖形

海龜由程序控制,可以變換顏色、改變寬度等

 

turtle的繪圖窗體:

turtle的一個畫布空間,最小單位是像素

turtle的繪圖窗體:

turtle的繪圖窗體:

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

注意三點:

1、setup設置船體的大小及位置

2、4個參數后兩個參數可選

3、setup不是必須的

 

turtle空間坐標體系

絕對坐標:

1 turtle.goto(x,y)

這句是常用語法,讓海龜爬

我們試試如下的代碼,然后看看運行結果

1 import turtle
2 turtle.goto( 100, 100)
3 turtle.goto( 100,-100)
4 turtle.goto(-100,-100)
5 turtle.goto(-100, 100)
6 turtle.goto(0,0)

我們運行之后看看效果,如下圖所示:

海龜的空間坐標體系

turtle.circle(r,angle),海龜左側圓心,半徑為r畫圓

1 import turtle
2 turtle.circle(100,90)
3 turtle.done()

動手試試上述代碼,會加深對circle函數的理解

 

下面我們了解一下海龜庫的角度坐標體系

turtle.seth(angle)

1、seth() 改變烏龜行進方向

2、angle為絕對角度

3、seth只改變方向但不行進

海龜也有相對角度

1 turtle.left(angle)
2 turtle.right(angle)

我們來試試如下代碼的繪制效果,來體會Turtle的角度體系

1 import turtle
2 turtle.left(45)
3 turtle.fd(150)
4 turtle.right(135)
5 turtle.fd(300)
6 turtle.left(135)
7 turtle.fd(150)
8 turtle.done()

繪制結果如下圖所示:

下面我們涉及一下RGB色彩體系

萬物色都可以由三種顏色構成

RGB指的是紅綠藍三個通道的顏色組合

覆蓋視力所能感知的所有顏色

RGB每色取值范圍是0-255或0-1小數

常用的RGB色彩:

英文名稱 RGB整數值 RGB小數值 中文名稱
white 255,255,255 1,1,1 白色
yellow 255,255,0 1,1,0 黃色
magenta 255,0,255 1,0,1 洋紅
cyan 0,255,255 0,1,1 青色
blue 0,0,255 0,0,1 藍色
black 0,0,0 0,0,0 黑色
seashell 255,245,238 1,0.96,0.93 海貝色
gold 255,215,0 1,0.84,0 金色
pink 255,192,203 1,0.75,0.80 粉紅色
brown 165,42,42 0.65,0.16,0.16 棕色
purple 160,32,240 0.63,0.13,0.94 紫色
tomato 255,99,71 1,0.39,0.28 番茄色

turtle的RGB色彩模式

默認采用小數值,可以切換成整數值:

1 turtle.colormode(mode)
2 #1.0:RGB小數值模式
3 #255:RGB整數值模式

turtle程序語法元素分析:

庫引用:

擴充python程序功能的方式

用import保留字完成,采用<a>.<b>()編碼風格

import <庫名>

<庫名>.<函數名>(<函數參數>)

 1 #PythonDraw.py
 2 import turtle
 3 turtle.setup(650, 350, 200, 200)
 4 turtle.penup()
 5 turtle.fd(-250)
 6 turtle.pendown()
 7 turtle.pensize(25)
 8 turtle.pencolor("purple")
 9 turtle.seth(-40)
10 for i in range(4):
11      turtle.circle(40, 80)
12      turtle.circle(-40, 80) 
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()

可是,超級多的turtle,好煩,咋辦????

import的更多用法:

使用from和import保留字共同完成

from <庫名> import <函數名>

from <庫名> import *

<函數名>(<函數參數>)

 1 #PythonDraw.py
 2 from turtle import *
 3 setup(650, 350, 200, 200)
 4 penup()
 5 fd(-250)
 6 pendown()
 7 pensize(25)
 8 pencolor("purple")
 9 seth(-40)
10 for i in range(4):
11     circle(40, 80)
12     circle(-40, 80)
13 circle(40, 80/2)
14 fd(40)
15 circle(16, 180)
16 fd(40 * 2/3)
17 done()

這么好的方法咋不早說呢???

因為第一種方法不會出現函數重名問題,而第二種方法會出現函數重名問題

import的更多用法

使用import和as保留字共同完成

import <庫名> as <庫別名>

<庫別名>.<函數名>(<函數參數>)

相當於給庫起個簡單的名字,如:狗娃

 1 #PythonDraw.py
 2 import turtle as t
 3 t.setup(650, 350, 200, 200)
 4 t.penup()
 5 t.fd(-250)
 6 t.pendown()
 7 t.pensize(25)
 8 t.pencolor("purple")
 9 t.seth(-40)
10 for i in range(4):
11      t.circle(40, 80)
12      t.circle(-40, 80)
13 t.circle(40, 80/2)
14 t.fd(40)
15 t.circle(16, 180)
16 t.fd(40 * 2/3)
17 t.done()

這個方法比較推薦,也簡潔了代碼書寫。

下面我們來分析下面這段代碼的畫筆控制函數

1 turtle.penup()
2 turtle.fd(-250)
3 turtle.pendown()
4 turtle.pensize(25)
5 turtle.pencolor("purple")

畫筆操作后一直有效,一般成對出現

turtle.penup() #抬起畫筆,海龜在飛 別名:turtle.pu()

turtle.pendown() #方向畫筆,海龜在爬 別名:turtle.pd()

畫筆設置后一直有效,直到下次重新設置

turtle.pensize(width) 別名:turtle.width(width)

  畫筆寬度,也就是海龜的腰圍

turtle.pencolor(color) color為顏色字符串或者RGB值

  畫筆顏色,海龜在塗裝

pencolor(color)中的color參與可以有三種形式

1、顏色字符串 :turtle.pencolor("purple")

2、RGB的小數值:turtle.pencolor(0.63,0.13,0.94)

3、RGB的元組值:turtle.pencolor((0.63,0.13,0.94))

turtle的運動控制函數

控制海龜行進:走直線&走曲線

turtle.forward(d)  別名turtle.fd(d)

向前行進,海龜走直線

d:行進距離,可以為負數

turtle.circle(r,extend=None)

  根據半徑r繪制extend角度的弧形

r:默認圓心在海龜左側r距離的位置

extent:繪制角度,默認360度整圓

 

方向控制函數

turtle.seth(45)

turtle.seth(-135)

控制海龜面對的方向:絕對角度和相對角度

turtle.left(angle)  海龜向左轉

turtle.right(angle)  海龜向右轉

angle:在海龜當前行進方向上旋轉的角度

循環語句與range()函數

1 for i in range(4):
2     tirtle.circle(40,80)
3     tirtle.circle(-40,80)

按照一定次數循環執行一組語句

for <變量> in range(<次數>):

  <被循環執行的語句>

<變量>表示每次循環的計數,0到<次數>-1

 

range()函數:產生循環計數序列

range(N) 產生0到N-1的整數序列,共N個

range(M,N)產生M到N-1的整數序列,共N-M個

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM