python使用Turtle庫畫畫寫名字

Turtle庫是Python語言中一個很流行的繪制圖像的函數庫,利用這個庫會生成一個畫佈,在畫佈中有我們看不見的一個默認以中心點為原點的坐標軸,在原點會有一個初始默認朝東的畫筆(箭頭),一般我們把這個箭頭叫做海龜,箭頭的朝向就是海龜頭的朝向。

這個動圖展示的就是我利用Turtle庫畫的一個名字畫,下面附上代碼:

import time
import turtle
from random import random

t = turtle
t.speed(3)
t.hideturtle()
t.color('black')
t.pensize(10)

# 一
t.penup()
t.goto(-110, 60)
t.pendown()
t.forward(100)

# |
t.penup()
t.goto(-60, 125)
t.right(90)
t.pendown()
t.forward(266)

# 丿
t.penup()
t.goto(-60, 45)
t.right(45)
t.pendown()
t.forward(90)

# 丶
t.penup()
t.goto(-60, 38)
t.left(90)
t.pendown()
t.forward(40)

# 小一
t.penup()
t.goto(20, 60)
t.left(45)
t.pendown()
t.forward(90)

# |
t.penup()
t.goto(65, 123)
t.right(90)
t.pendown()
t.forward(123)

# 大一
t.penup()
t.goto(0, -5)
t.left(90)
t.pendown()
t.forward(130)

# 小一
t.penup()
t.goto(20, -65)
t.pendown()
t.forward(90)

# |
t.penup()
t.goto(65, -14)
t.right(90)
t.pendown()
t.forward(120)

# 大一
t.penup()
t.goto(0, -135)
t.left(90)
t.pendown()
t.forward(130)

# 畫圓
t.color('red')
t.pensize(3)
t.penup()
t.goto(15, -200)
t.pendown()
t.circle(180)

t.exitonclick()

函數

解釋

hideturtle

隱藏畫筆

speed

畫筆速度,1-10,1最慢,10最快

color

後可傳參(2個參數),不傳為默認設置,第一個參數為畫筆顏色,第二個參數為填充顏色

pensize

畫筆粗細,越大越粗

penup

畫筆拿起,之後畫筆運動時不畫下軌跡

pendown

默認是這個狀態,畫筆落下,之後畫筆運動會畫出軌跡

forward(num)

畫筆運動,num為運動像素數,即長度

right (a)

畫筆方向向右旋轉a角度,順時針旋轉

left(a)

畫筆方向向左旋轉a角度,逆時針旋轉

goto(x,y)

將畫筆移動到坐標軸x,y位置,在pendowm下會畫下軌跡

goto(x,y)

將畫筆移動到坐標軸x,y位置,在pendowm下會畫下軌跡

circle(a)

以當前點為圓心,畫一個半徑為a的圓

exitonclick

點擊關閉,畫筆運行完不再自動退出畫佈

下面是在論壇看到的一個大佬的畫櫻花樹的代碼,生成的結果比上面的復雜很多,但在弄懂我上面代碼的情況下很容易看懂,作為進階給大傢展示下:

import turtle as T
import random
import time


# 畫櫻花的軀幹(60,t)
def Tree(branch, t):
    time.sleep(0.0005)
    if branch > 3:
        if 8 <= branch <= 12:
            if random.randint(0, 2) == 0:
                t.color('snow')  # 白
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 3)
        elif branch < 8:
            if random.randint(0, 1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 2)
        else:
            t.color('sienna')  # 赭(zhě)色
            t.pensize(branch / 10)  # 6
        t.forward(branch)
        a = 1.5 * random.random()
        t.right(20 * a)
        b = 1.5 * random.random()
        Tree(branch - 10 * b, t)
        t.left(40 * a)
        Tree(branch - 10 * b, t)
        t.right(20 * a)
        t.up()
        t.backward(branch)
        t.down()


# 掉落的花瓣
def Petal(m, t):
    for i in range(m):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('lightcoral')  # 淡珊瑚色
        t.circle(1)
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)


# 繪圖區域
t = T.Turtle()
# 畫佈大小
w = T.Screen()
t.hideturtle()  # 隱藏畫筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')

# 畫櫻花的軀幹
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

這個代碼除瞭用到我上面介紹的幾個函數,還用到瞭screenbgcolor,分別是設置畫佈和背景色,backward就是反向的forward

到此這篇關於python利用Turtle庫畫畫寫名字 的文章就介紹到這瞭,更多相關pythonTurtle畫畫寫名字 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: