一、基礎小結
turtle庫是python標准庫之一,入門級繪圖庫。import turtle之后即可使用。
1、繪圖窗口設置命令
turtle.setup(400,300,200,100):參數以此(寬,高,距離屏幕左邊距離,距離屏幕上方距離),屏幕左上角原點,單位像素。
2、運動命令
turtle.goto(x,y):直接跳轉到(x,y)點,以繪圖窗口中心為原點,向右為x軸,向上為y軸。
turtle.fd(d)、turtle.forward(d):以當前方向,往前行進d像素。
turtle.bk(d)、turtle.backword(d):保持當前方向不變,往后退行d像素。
turtle.circle(r,angle):從當前位置以r為半徑圓的angle角度旋轉。
circle(100,180) circle(100,-180) ciecle(-100,180) circle(-100,-180)
3、方向設置命令
turtle.seth(angle):以x軸方向為起點將方向偏轉為angle度,逆時針為正。只改變行進方向但不行進。
turtle.left(angle):在當前行進方向的基礎上,向左旋轉angle度。
turtle.right(angle):在當前行進方向的基礎上,向右旋轉angle度。
4、畫筆控制命令
turtle.penup():台筆
turtle.pendown():落筆
turtle.pensize(width):畫筆粗細
turtle.pencolor(顏色名red/RGB三元組/顏色編碼):畫筆顏色
turtle.fillcolor(colorstring):繪制圖形的填充顏色
turtle.begin_fill():開始填充
turtle.end_fill():結束填充
turtle.filling():返回當前是否在填充狀態
二、牛刀小試
1、使用 turtle 庫的 turtle.fd() 函數和 turtle.seth() 函數繪制一個等邊三角形,邊長為 200 像素,效果如下圖所示。
import turtle as t
for i in range(3):
t.seth(i*120)
t.fd(200)
2、使用 turtle 庫的 turtle.fd() 函數和 turtle.seth() 函數繪制一個邊長為 200 的正方形,效果如下圖所示。
import turtle
d = 0
for i in range(4):
turtle.fd(200)
d=d+90
turtle.seth(d)
3、使用 turtle 庫的 turtle.right() 函數和 turtle.fd() 函數繪制一個菱形四邊形,邊長為 200 像素,效果如下圖所示。
import turtle as t
t.right(-30)
for i in range(2):
t.fd(200)
t.right(60*(i+1))
for i in range(2):
t.fd(200)
t.right(60*(i+1))
4、用 turtle 庫的 turtle.fd() 函數和 turtle.seth() 函數繪制一個五邊形,邊長為 200 像素,效果如下圖所示。
import turtle
d = 0
for i in range(5):
turtle.fd(200)
d += 72
turtle.seth(d)
5、用 turtle 庫的 turtle.fd() 函數和 turtle.left() 函數繪制一個六邊形,邊長為 200 像素,效果如下圖所示。
import turtle as t
for i in range(6):
t.fd(200)
t.left(60)
6、使用 turtle 庫的 turtle.circle() 函數、turtle.seth() 函數和 turtle.left() 函數繪制一個四瓣花圖形,從左上角花瓣開始,逆時針作畫,效果如下圖所示。
import turtle as t
for i in range(4):
t.seth(90 * (i + 1))
#90,180,270,360
t.circle(200,90)
#-90,0,90,180
t.seth(-90 + i * 90)
t.circle(200,90)
7、使用 turtle 庫的 turtle.right() 函數和 turtle.circle() 函數繪制一個四葉草,效果如下圖所示。
import turtle
for i in range(4):
turtle.right(90)
turtle.circle(50,180)
8、使用 turtle 庫的 turtle.right() 函數和 turtle.circle() 函數繪制一個星星圖形(半徑為90),如下圖所示。
import turtle
for i in range(4):
turtle.circle(-90,90)
turtle.right(180)
9、使用 turtle 庫的 turtle.circle() 函數和 turtle.seth() 函數繪制套圈,最小的圓圈半徑為 10 像素,不同圓圈之間的半徑差是 40 像素。效果如下圖所示。
import turtle
r =10
head = 90
for i in range (4):
turtle.seth(head)
turtle.circle (r)
r = r + 40
turtle.done()
10、使用 turtle 庫的 turtle.circle() 函數和 turtle.seth() 函數繪制同心圓套圈,最小的圓圈半徑為 10 像素,不同圓圈之間的半徑差是 40 像素,效果如下圖所示。
import turtle
r = 10
dr = 40
head = 90
for i in range (4):
turtle.pendown()
turtle.circle(r)
r += dr
turtle.penup()
turtle.seth(-head)
turtle.fd(dr)
turtle.seth(0)
turtle.done()
11、使用 turtle 庫的 turtle.fd() 函數和 turtle.seth() 函數繪制螺旋狀的正方形,正方形邊長從 1 像素開始,第一條邊從 0 度方向開始。效果如下圖所示。
import turtle
d = 0
k = 1
for j in range(10):
for i in range(4):
turtle.fd(k)
d += 91
turtle.seth(d)
k += 2
turtle.done()
12、使用turtle庫繪制類似斯洛克形狀圖案,效果如下圖所示。
import turtle
def drawCircle():
turtle.pendown()
turtle.circle(20)
turtle.penup()#向某個方向前進40,抬筆
turtle.fd(40)
def drawRowCircle(n):
for j in range(n,1,-1):#從上往下畫圓圈
for i in range(j):
drawCircle()#這一句應該是要畫圖
turtle.fd(-j*40-20)#下面這部分是在換行
turtle.right(90)
turtle.fd(40)
turtle.left(90)
turtle.fd(40)
drawCircle()
drawRowCircle(5)
turtle.hideturtle()
turtle.done()
13、使用turtle庫的turtle.fd()函數和turtle.seth()函數繪制嵌套六角形,六角形邊長從1像素開始,第一條邊從0度方向開始,邊長按照3個像素遞增,效果如下圖所示。
import turtle
edge = 6
d = 0
k = 1
for j in range(10):
for i in range(edge):
turtle.fd(k)
d += 360/edge
turtle.seth(d)
k += 3
turtle.done()
————————————————
版權聲明:本文為CSDN博主「eook767117193」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u014041590/article/details/88913903
