第四章 python的turtle库的运用
我們可以嘗試用python的自帶turtle庫(kù)繪制一條蟒蛇
首先我們?cè)O(shè)計(jì)一下蟒蛇的基本形狀
我們先把這段蟒蛇繪制的實(shí)例代碼貼出來(lái),各位可以在自己的本地運(yùn)行一下看看效果,然后我們?cè)倮^續(xù)分析代碼:
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()
程序關(guān)鍵:import保留字,引入了一個(gè)繪圖體系,名字叫:turtle,就是海龜
學(xué)會(huì)海龜繪圖體系之后,我們可以完成更加復(fù)雜的繪制:五角星繪制、國(guó)旗繪制、機(jī)器貓繪制
掌握了繪制一條線的方法,就可以繪制整個(gè)世界
?
turtle庫(kù)概述:
turtle庫(kù)的turtle繪圖體系的python實(shí)現(xiàn)
turtle繪圖體系:1969年誕生,主要用于程序設(shè)計(jì)入門(mén)
python的標(biāo)準(zhǔn)庫(kù)之一,入門(mén)級(jí)的圖形繪制函數(shù)庫(kù)
python的計(jì)算生態(tài):python標(biāo)準(zhǔn)庫(kù)+第三方庫(kù)
標(biāo)準(zhǔn)庫(kù):隨解釋器直接安裝到操作系統(tǒng)的功能模塊
第三方庫(kù):需要經(jīng)過(guò)安裝才能使用的功能模塊
?
turtle的原理:
turtle是一種真實(shí)的存在,有一只海龜,在窗體的正中心,在畫(huà)布上游走
走過(guò)的軌跡形成了繪制的圖形
海龜由程序控制,可以變換顏色、改變寬度等
?
turtle的繪圖窗體:
turtle的一個(gè)畫(huà)布空間,最小單位是像素
turtle的繪圖窗體:
turtle的繪圖窗體:
1 turtle.setup(width, height, startx, starty) 注意三點(diǎn):
1、setup設(shè)置船體的大小及位置
2、4個(gè)參數(shù)后兩個(gè)參數(shù)可選
3、setup不是必須的
?
turtle空間坐標(biāo)體系
絕對(duì)坐標(biāo):
1 turtle.goto(x,y) 這句是常用語(yǔ)法,讓海龜爬
我們?cè)囋嚾缦碌拇a,然后看看運(yùn)行結(jié)果
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)
我們運(yùn)行之后看看效果,如下圖所示:
海龜?shù)目臻g坐標(biāo)體系
turtle.circle(r,angle),海龜左側(cè)圓心,半徑為r畫(huà)圓
1 import turtle 2 turtle.circle(100,90) 3 turtle.done()
動(dòng)手試試上述代碼,會(huì)加深對(duì)circle函數(shù)的理解
?
下面我們了解一下海龜庫(kù)的角度坐標(biāo)體系
turtle.seth(angle)
1、seth() 改變?yōu)觚斝羞M(jìn)方向
2、angle為絕對(duì)角度
3、seth只改變方向但不行進(jìn)
海龜也有相對(duì)角度
1 turtle.left(angle) 2 turtle.right(angle)
我們來(lái)試試如下代碼的繪制效果,來(lái)體會(huì)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()
繪制結(jié)果如下圖所示:
下面我們涉及一下RGB色彩體系
萬(wàn)物色都可以由三種顏色構(gòu)成
RGB指的是紅綠藍(lán)三個(gè)通道的顏色組合
覆蓋視力所能感知的所有顏色
RGB每色取值范圍是0-255或0-1小數(shù)
常用的RGB色彩:
| 英文名稱(chēng) | RGB整數(shù)值 | RGB小數(shù)值 | 中文名稱(chēng) |
| 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 | 藍(lán)色 |
| 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色彩模式
默認(rèn)采用小數(shù)值,可以切換成整數(shù)值:
1 turtle.colormode(mode) 2 #1.0:RGB小數(shù)值模式 3 #255:RGB整數(shù)值模式
turtle程序語(yǔ)法元素分析:
庫(kù)引用:
擴(kuò)充python程序功能的方式
用import保留字完成,采用<a>.<b>()編碼風(fēng)格
import <庫(kù)名>
<庫(kù)名>.<函數(shù)名>(<函數(shù)參數(shù)>)
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()
可是,超級(jí)多的turtle,好煩,咋辦????
import的更多用法:
使用from和import保留字共同完成
from <庫(kù)名> import <函數(shù)名>
from <庫(kù)名> import *
<函數(shù)名>(<函數(shù)參數(shù)>)
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()
這么好的方法咋不早說(shuō)呢???
因?yàn)榈谝环N方法不會(huì)出現(xiàn)函數(shù)重名問(wèn)題,而第二種方法會(huì)出現(xiàn)函數(shù)重名問(wèn)題
import的更多用法
使用import和as保留字共同完成
import <庫(kù)名> as <庫(kù)別名>
<庫(kù)別名>.<函數(shù)名>(<函數(shù)參數(shù)>)
相當(dāng)于給庫(kù)起個(gè)簡(jiǎn)單的名字,如:狗娃
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()
這個(gè)方法比較推薦,也簡(jiǎn)潔了代碼書(shū)寫(xiě)。
下面我們來(lái)分析下面這段代碼的畫(huà)筆控制函數(shù)
1 turtle.penup() 2 turtle.fd(-250) 3 turtle.pendown() 4 turtle.pensize(25) 5 turtle.pencolor("purple")
畫(huà)筆操作后一直有效,一般成對(duì)出現(xiàn)
turtle.penup() #抬起畫(huà)筆,海龜在飛 別名:turtle.pu()
turtle.pendown() #方向畫(huà)筆,海龜在爬 別名:turtle.pd()
畫(huà)筆設(shè)置后一直有效,直到下次重新設(shè)置
turtle.pensize(width) 別名:turtle.width(width)
畫(huà)筆寬度,也就是海龜?shù)难鼑?/p>
turtle.pencolor(color) color為顏色字符串或者RGB值
畫(huà)筆顏色,海龜在涂裝
pencolor(color)中的color參與可以有三種形式
1、顏色字符串 :turtle.pencolor("purple")
2、RGB的小數(shù)值:turtle.pencolor(0.63,0.13,0.94)
3、RGB的元組值:turtle.pencolor((0.63,0.13,0.94))
turtle的運(yùn)動(dòng)控制函數(shù)
控制海龜行進(jìn):走直線&走曲線
turtle.forward(d) 別名turtle.fd(d)
向前行進(jìn),海龜走直線
d:行進(jìn)距離,可以為負(fù)數(shù)
turtle.circle(r,extend=None)
根據(jù)半徑r繪制extend角度的弧形
r:默認(rèn)圓心在海龜左側(cè)r距離的位置
extent:繪制角度,默認(rèn)360度整圓
?
方向控制函數(shù)
turtle.seth(45)
turtle.seth(-135)
控制海龜面對(duì)的方向:絕對(duì)角度和相對(duì)角度
turtle.left(angle) 海龜向左轉(zhuǎn)
turtle.right(angle) 海龜向右轉(zhuǎn)
angle:在海龜當(dāng)前行進(jìn)方向上旋轉(zhuǎn)的角度
循環(huán)語(yǔ)句與range()函數(shù)
1 for i in range(4): 2 tirtle.circle(40,80) 3 tirtle.circle(-40,80)
按照一定次數(shù)循環(huán)執(zhí)行一組語(yǔ)句
for <變量> in range(<次數(shù)>):
<被循環(huán)執(zhí)行的語(yǔ)句>
<變量>表示每次循環(huán)的計(jì)數(shù),0到<次數(shù)>-1
?
range()函數(shù):產(chǎn)生循環(huán)計(jì)數(shù)序列
range(N) 產(chǎn)生0到N-1的整數(shù)序列,共N個(gè)
range(M,N)產(chǎn)生M到N-1的整數(shù)序列,共N-M個(gè)
?
轉(zhuǎn)載于:https://www.cnblogs.com/chy8/p/9448606.html
總結(jié)
以上是生活随笔為你收集整理的第四章 python的turtle库的运用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端开发之JavaScript基础篇一
- 下一篇: linux free命令详解和使用实例(