咱們能夠嘗試用python的自帶turtle庫繪製一條蟒蛇python
首先咱們設計一下蟒蛇的基本形狀shell
咱們先把這段蟒蛇繪製的實例代碼貼出來,各位能夠在本身的本地運行一下看看效果,而後咱們再繼續分析代碼:函數
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,就是海龜編碼
學會海龜繪圖體系以後,咱們能夠完成更加複雜的繪製:五角星繪製、國旗繪製、機器貓繪製spa
掌握了繪製一條線的方法,就能夠繪製整個世界操作系統
turtle庫概述:設計
turtle庫的turtle繪圖體系的python實現3d
turtle繪圖體系:1969年誕生,主要用於程序設計入門code
python的標準庫之一,入門級的圖形繪製函數庫orm
python的計算生態:python標準庫+第三方庫
標準庫:隨解釋器直接安裝到操做系統的功能模塊
第三方庫:須要通過安裝才能使用的功能模塊
turtle的原理:
turtle是一種真實的存在,有一隻海龜,在窗體的正中心,在畫布上游走
走過的軌跡造成了繪製的圖形
海龜由程序控制,能夠變換顏色、改變寬度等
turtle的繪圖窗體:
turtle的一個畫布空間,最小單位是像素
turtle的繪圖窗體:
turtle的繪圖窗體:
1 turtle.setup(width, height, startx, starty)
注意三點:
一、setup設置船體的大小及位置
二、4個參數後兩個參數可選
三、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)
一、seth() 改變烏龜行進方向
二、angle爲絕對角度
三、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參與能夠有三種形式
一、顏色字符串 :turtle.pencolor("purple")
二、RGB的小數值:turtle.pencolor(0.63,0.13,0.94)
三、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個