文章目錄
1.python蟒蛇繪製實例
源代碼:
#pythonDraw.py
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()
運行結果:
2.turtle庫的使用
turtle的一個畫布空間,最小單位是像素
2.1 turtle的繪圖窗體
(1)這裏使用turtlre.setup函數設置窗體大小及位置
turtle.setup(width,height,startx,stary)
(2)四個參數,(寬度,高度,起始點的xy座標),後兩個參數可選
- 寬度高度指的是窗體本身的寬度高度
- 起始點座標指的是左上角的位置座標,即相對於屏幕左上角的座標
- setup函數並不是必須的,只有在需要控制窗體大小,和在屏幕中顯示的位置時才用得着
(3)實例:
2.2 turtle空間座標體系
在turtle窗體內部形成了一個空間座標體系,包含絕對座標和海龜座標兩種
2.2.1 絕對座標
(1)海龜最開始在畫布正中心,也就是(0,0)座標,海龜運行方向向着畫布右側
(2)在這裏使用turtle.goto(x,y)
函數,它指的是讓任何位置的海龜,無論在哪裏,去到達(x,y)這個座標,下面有個實例
2.2.2 海龜座標
(1)海龜本身從它自身運動來講,它的當前行進方向,無論朝向哪裏,都叫行進方向,反方向叫後退方向,運行的左側叫左側方向,右側叫右側方向
(2)可以使用控制海龜的函數比如
注:參數d是指行進的像素
turtle.fd(d)
指的是海龜正前方向運行turtle.bk(d)
指的是海龜反方向運行turtle.circle(r,angle)
指的是以海龜當前位置左側的某一個點爲圓心,進行曲線運行
2.3 turtle角度座標體系
2.3.1 絕對角度
2.3.2 海龜角度
2.3.3 實例:畫個z字
2.4 RGB色彩體系
RGB指的是紅綠藍三種顏色組合。RGB每色取值範圍0-255整數或0-1小數
(1)常用RGB色彩
(2)turtle的RGB色彩模式
3.turtle程序語法元素分析
3.1 庫引用和import
(1)如果按照本文一開始的蟒蛇案例,會發現有非常多的turtle.
的寫法,稍顯繁瑣,這裏使用另一種方法
form和import保留字共同完成
from <庫名> import <函數名>
from <庫名> import *
<函數名>(<函數參數>)
使用這種方式之後,就不需要重複使用庫名.
的形式,下面對一開始的蟒蛇繪製代碼改造:
(2)兩種import方式比較
- 左邊這種不會出現函數重名問題
- 右邊這種,庫中的函數名稱可能會與用戶自定義的函數名稱一致,函數名就會發生衝突,如果程序很短,也沒有自己定義的函數,建議用這種
(3)將以上兩種方法統一考慮,可以使用import和as保留字共同完成
import <庫名> as <庫別名>
<庫別名>.<函數名>(<函數參數>)
就是說給庫取個小名,讓小名去調用函數,同時庫別名也是一個獨立,跟適合自己的名字,同時也防止了庫重名的問題。比如我們修改蟒蛇繪製代碼:
3.2 turtle畫筆控制函數
(1)畫筆操作後一直有效,一般成對出現
turtle.penup()
,別名turtle.pu()
,意爲擡起畫筆,海龜在飛行turtle.pendown()
,別名turtle.pd()
,意爲落下畫筆,海龜在爬行
(2)畫筆設置後一直有效,直至下次重新設置
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的元組值:turttle.pencolor((0.63,0.13,0.94))
3.3 turtle運動控制函數
(1)控制海龜行進:走直線&曲線
turtle.forward(d)
,別名turtle.fd(d),意爲海龜向前行進,海龜走直線。參數d爲行進距離,可爲負數,即倒退行進turle.circle(r,extent)
,意爲根據半徑r繪製extent角度的弧形。默認圓心在海龜左側r距離位置上。參數extent可以不設置,那將繪製360°圓,以下兩個例子:
3.4 turtle方向控制函數
控制海龜面對方向,只改變海龜行進方向,並不實際上讓海龜運動
(1)絕對角度:
turtle.setheading(angle)
別名turtle.seth(angle)
,意爲改變行進方向,海龜走角度
(2)海龜角度:
turtle.left(angle)
海龜左轉turtle.right(angle)
海龜右轉
3.5 循環語句和range函數
(1)循環語句:按照一定次數循環執行一組語句
for <變量> in (<參數>)
<被循環執行的語句>
<變量>表示每次循環的計數,0到<次數>-1
(2)range()函數:產生循環計數序列
range(N)
:產生0到N-1的整數序列,共N個,比如range(5),產生01234range(M,N)
:產生M到N-1的整數序列,比如range(2,5),產生234