python中關於turtle庫的學習筆記


一、基礎概念

1、畫布:畫布就是turtle為我們展開用於繪圖區域, 我們可以設置它的大小和初始位置。常用的畫布方法有兩個:screensize()setup()

(1)turtle.screensize(canvwidth, canvheight, bg):參數分別為畫布的寬(單位像素), 高, 背景顏色

如:

turtle.screensize(500,1000,'green')
2)turtle.setup(width, height, startx, starty):width, height: 

輸入寬和高為整數時, 表示像素; 為小數時, 表示占據電腦屏幕的比例。(startx, starty): 這一坐標表示 矩形窗口左上角頂點的位置, 如果為空,則窗口位於屏幕中心。

2、畫筆:在畫布上,默認有一個坐標原點為畫布中心的坐標軸, 坐標原點上有一只面朝x軸正方向小烏龜。這里我們描述小烏龜時使用了兩個詞語:標原點(位置),面朝x軸正方向(方向),turtle繪圖中, 就是使用位置方向描述小烏龜(畫筆)的狀態。

 

(1)畫筆屬性:

1) turtle.pensize():設置畫筆的寬度;

2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組。

3) turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。

 

(2)繪制命令:

1)turtle.forward(distance)(別名:turtle.fd):向當前畫筆方向移動distance像素長度。

2)turtle.backward(distance):向當前畫筆相反方向移動distance像素長度。

3)turtle.right(degree):順時針移動degree°。

4)turtle.left(degree):逆時針移動degree°。

5)turtle.pendown()(別名:turtle.pd(),turtle.down()):移動時繪制圖形,缺省時也為繪制。

6)turtle.goto(x,y):將畫筆移動到坐標為x,y的位置。

7)turtle.penup()(別名:turtle.pu(),turtle.up()):提起筆移動,不繪制圖形,用於另起一個地方繪制。

8)turtle.circle():畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓。

9)setx( ):將當前x軸移動到指定位置。

10)sety( ):將當前y軸移動到指定位置。

11)setheading(angle):設置當前朝向為angle角度。

12)home():設置當前畫筆位置為原點,朝向東。

13)dot(r):繪制一個指定直徑和顏色的圓點。

14)turtle.fillcolor(colorstring):繪制圖形的填充顏色。

15)turtle.color(color1, color2):同時設置pencolor=color1, fillcolor=color2。

16)turtle.filling():返回當前是否在填充狀態。

17)turtle.begin_fill():准備開始填充圖形。

18)turtle.end_fill():填充完成。

19)turtle.hideturtle():隱藏畫筆的turtle形狀。

20)turtle.showturtle():顯示畫筆的turtle形狀。

21)turtle.seth(to_angle)(別名:turtle.setheading(to_angle)):設置小海龜當前前進方向為to_angle,該角度是絕對方向的角度值。

 3、實例:
(1)太陽花:

from turtle import *   
begin_fill()  #准備開始填充圖形
pensize(2) #設置畫筆的寬度
color('red','yellow') #設置畫筆顏色為藍色,填充顏色為綠色
while True:
    forward(200) #畫筆移動200個像素長度
    left(170)  #逆時針移動170°
    if abs(pos())<1: #判斷畫筆是否回到起點
        break
end_fill()  #結束填充圖形
done()
(2)玫瑰花:

from turtle import *
#global pen and speed
pencolor("black")
fillcolor("red")
speed(50)
s=0.15
#init poistion
penup()
goto(0,600*s)
pendown()
begin_fill()
circle(200*s,30)
for i in range(60):
    lt(1)
    circle(50*s,1)
circle(200*s,30)
for i in range(4):
    lt(1)
    circle(100*s,1)
circle(200*s,50)
for i in range(50):
    lt(1)
    circle(50*s,1)
circle(350*s,65)
for i in range(40):
    lt(1)
    circle(70*s,1)
circle(150*s,50)
for i in range(20):
    rt(1)
    circle(50*s,1)
circle(400*s,60)
for i in range(18):
    lt(1)
    circle(50*s,1)
fd(250*s)
rt(150)
circle(-500*s,12)
lt(140)
circle(550*s,110)
lt(27)
circle(650*s,100)
lt(130)
circle(-300*s,20)
rt(123)
circle(220*s,57)
end_fill()
lt(120)
fd(280*s)
lt(115)
circle(300*s,33)
lt(180)
circle(-300*s,33)
for i in range(70):
    rt(1)
    circle(225*s,1)
circle(350*s,104)
lt(90)
circle(200*s,105)
circle(-500*s,63)
penup()
goto(170*s,-330*s)
pendown()
lt(160)
for i in range(20):
    lt(1)
    circle(2500*s,1)
for i in range(220):
    rt(1)
    circle(250*s,1)
fillcolor('green')
penup()
goto(670*s,-480*s)
pendown()
rt(140)
begin_fill()
circle(300*s,120)
lt(60)
circle(300*s,120)
end_fill()
penup()
goto(180*s,-850*s)
pendown()
rt(85)
circle(600*s,40)
penup()
goto(-150*s,-1300*s)
pendown()
begin_fill()
rt(120)
circle(300*s,115)
lt(75)
circle(300*s,100)
end_fill()
penup()
goto(430*s,-1370*s)
pendown()
rt(30)
circle(-600*s,35}

done()
(3)正多邊形漸變為圓

import turtle
turtle.screensize(600,500,'white')
turtle.pensize(3)           #設置畫筆寬度為3
turtle.pencolor('blue')    #設置畫筆顏色為黑色
turtle.fillcolor('yellow')  #設置填充顏色為黃色
turtle.begin_fill()         #開始填充
turtle.forward(-300)
for i in range(3,8):
    turtle.circle(20, steps=i)
    turtle.forward(100)
turtle.circle(20)
turtle.end_fill()
turtle.hideturtle()         #隱藏海龜
turtle.done()
4)五角星:

from turtle import *
pensize(2)
color('yellow','red')
begin_fill()
while True:
    forward(220)
    right(144)
    if abs(pos()) < 1:
            break
end_fill()
hideturtle()
done()
 
        
 

 



 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM