python(Mooc)--基本圖形繪製

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),產生01234
  • range(M,N):產生M到N-1的整數序列,比如range(2,5),產生234
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章