天天看點

python蟒蛇繪制

執行個體二:使用turtle庫進行蟒蛇繪制

2-1

#蟒蛇繪制.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)
           

2-2

#蟒蛇繪制.py
from turtle import *
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
    circle(40, 80)
    circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
           

2-3

#函數封裝蟒蛇繪制.py
import turtle
def drawSnake(radius, angle, length):
    turtle.seth(-40)
    for i in range(length):
        turtle.circle(radius, angle)
        turtle.circle(-radius, angle)
    turtle.circle(radius, angle/2)
    turtle.fd(40)
    turtle.circle(16, 180)
    turtle.fd(40* 2/3)
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
drawSnake(40, 80, 4)
turtle.done()
           

turtle庫介紹

-turtle(海龜)庫是turtle繪制體系的python實作,是入門級的圖形繪制函數庫

标準庫和第三方庫

python計算生态=标準庫+第三方庫

-标準庫:随解釋器直接安裝到作業系統的功能子產品

-第三方庫:需要經過安裝才能使用的功能子產品

-庫Library,包package,子產品module,統稱為子產品

turtle的繪圖窗體

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

-setup()設定啟動窗體的位置及大小,不是必須函數

turtle空間坐标系

-turtle.goto(x,y)

turtle.fd(d)向海龜正前方行進

turtle.circle(r,angle)以海龜目前位置左側某點為圓心進行曲線運作

turtle.bk(d)向海龜的反方向行進

turtle角度坐标體系

-x軸表示0度或360度,y軸表示90度或-270度

-turtle.seth(angle)改變海龜行進方向,不在圖像中繪制任何資訊,隻改變方向但不行進

-turtle.left(angle)或turtle.right()分别讓海龜向左或向右改變運作方向

RGB色彩模式

-RGB表示紅綠藍三個通道的顔色組合

-覆寫視力所能感覺的所有顔色

-RGB每色取值範圍0-255整數或0-1小數

-turtle.colormode(mode)

庫引用

-擴充python程式功能的方式

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

具體方法 import <庫名>

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

import更多用法

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

from <庫名> import <函數名>

from <庫名> import*

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

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

import <庫名> as <庫别名>

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

例如:import turtle 可寫為 import turtle as t(将turtle縮寫為t代碼更加簡單)

畫筆控制函數

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

turtle.penup() 别名 turtle.pu()  [擡起畫筆,海龜在飛行,不形成圖形]

turtle.pendown() 别名 turtle.pd() [畫筆落下,海龜在爬行]

turtle.pensize(width) 别名 turtle.width(width) [畫筆寬度,海龜的腰圍

turtle.pencolor(color)  color為顔色字元串或r,g,b值 [畫筆顔色,海龜在塗裝]

     -turtle.pencolor(color) 中color參數有三種形式

          -顔色字元串:turtle.pencolor("green")  green是字元串形式而且需要小寫

         -RGB的小數值:turtle.pencolor(0.63,0.13,0.94) 直接給出RGB三個通道的數值

         - RGB的元組值:turtle.pencolor((0.63,0.13,0.94)) 元組值指将小數或整數值形成一個獨立的元素,即在數值外加一組括号

turtle運動控制函數

-控制海龜行進,走直線&走曲線

     -turtle.circle(r.extent=None)

         -根據半徑r繪制extent角度弧形

         -r:預設圓心在海龜左側r距離的位置

turtle方向控制函數

-控制海龜面對方向:絕對角度&海龜角度

     -turtle.setheading(angle)  别名 turtle.seth(angle)

          -angle:改變行進方向,海龜走角度

     -turtle.left(angle) 海龜向左轉

     -turtle.right(angle) 海龜向右轉

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

循環語句

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

       -for<變量> in range(<參數>)

             <被循環執行的語句>

        -<變量>表示每次循環計數,若range後面的次數固定,則變量就為0到<次數>-1

range() 函數

-産生循環計數序列

        -range(N)

         産生0到N-1的整數序列,共N個

        -range(M,N)

         産生M到N-1的整數序列,共N-M個