五十六、教用Python中的turtle海龜畫圖(上篇)

@Author:Runsen
@Date:2020/5/27

作者介紹:Runsen目前大三下學期,專業化學工程與工藝,大學沉迷日語,Python, Java和一系列數據分析軟件。導致翹課嚴重,專業排名中下。.在大學60%的時間,都在CSDN。決定今天比昨天要更加努力。

在Python中的turtle海龜畫圖,我相信大家都有了解,我在之前也寫過這類的博文,但是我發現真的不行,今天就重寫,保留好的地方,添加更多的要點

我覺得沒有什麼東西可以寫,就是需要不斷地實踐。

畫一條線

import turtle
t = turtle.Pen()
t.forward(100)

t = turtle.Pen()告訴計算機我們使用t表示海龜的鋼筆,
forward(distance) :別名 turtle.fd( distance ) 沿着當前方向前進指定距離,這裏的距離的單位是像素。


黑色的小三角就是我們的小海龜。三角後面的直線,就是小海龜“前進100步”所留下的痕跡

畫一個正方形

如果一直前進而不轉彎,畫出的圖也會相當單調。這不是我們所希望的,我們需要“轉彎語句”。我們可以“向右轉90度”,使用“t.right(90)”,或“向左轉90度”,使用“t.left(90)”。這裏我們選向右轉吧。將“t.right(90)”加入代碼,運行:

import turtle
t = turtle.Pen()
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)

畫一個三角形

我們使用turtle.setup(400,400)來設置畫布的大小,設置一個400 * 400的窗口大小。
t.left(120)以箭頭的方向向左旋轉120角度。

import turtle
turtle.setup(400,400)
t = turtle.Pen()
t.forward(100)
t.left(120)
t.forward(100)
t.left(120)
t.forward(100)
t.left(120)

畫一個圓

t.circle(50),就是畫一個半徑爲50的圓。

import turtle
turtle.setup(400,400)
t = turtle.Pen()
t.circle(50)
turtle.done()

turtle.done()就是畫完的時候停下來,不要馬上關閉。

繪製梯形

import turtle
turtle.up()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.goto(100,-100)
turtle.down()
turtle.goto(200,-100)
turtle.goto(250,-200)
turtle.goto(50,-200)
turtle.goto(100,-100)
turtle.end_fill()
turtle.done()


此梯形繪製在第四象限,所以梯形形每個頂點的座標中,x座標爲正,y座標爲負。四個點的座標分別選擇爲(100,-100)、(200,-100)、(250,-200)、(50,-200)。goto也是畫的意思,goto(x,y)就是以x和y座標定位畫線。down就是停下來。end_fill就是給封閉圖形添加顏色。

畫一個星星

星星就是四個圓弧組成,轉彎是180度

import turtle
turtle.setup(800, 600)  # 創建繪圖窗口

for i in range(4):   # 循環四次
    turtle.circle(90,90)   # 順時針畫一個半徑90,90度對應的圓弧 順時針是正
    turtle.right(180)       # 右轉180度

turtle.done()

畫一個五角星

五角星是邊數最少多角形。最簡單的畫法是先畫一個正五邊形,把各角用直線相連並擦去原來的五邊形或者延長原五邊形的各邊直到它們相交,從而得到一個大的五角星。

import turtle
 turtle.color('black','red')
 turtle.begin_fill()
 for i in range(5):
     turtle.forward(100)
     turtle.right(144)
 turtle.end_fill()

畫一個圖案

import turtle
t = turtle.Pen()
for x in range(100):
    t.forward(x)
    t.left(90)
turtle.done()

方法總結

turtle.fd(d)、
turtle.forward(d):以當前方向,往前行進d像素。

turtle.bk(d)、
turtle.backword(d):保持當前方向不變,往後退行d像素。

turtle.circle(r,angle,steps=):從當前位置以r爲半徑圓的angle角度旋轉。

turtle.seth(angle):以x軸方向爲起點將方向偏轉爲angle度,逆時針爲正。只改變行進方向但不行進。

turtle.left(angle):在當前行進方向的基礎上,向左旋轉angle度。

turtle.right(angle):在當前行進方向的基礎上,向右旋轉angle度。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章