這篇文章給大家介紹turtle庫的安裝以及原理分析是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
turtle庫是Python中一個很流行的繪圖函數庫,主要是依據坐標軸來繪制圖像,畫筆則是一只小海龜,通過控制海龜的在坐標平面的移動,從而繪制各種各樣的圖像。
pip install turtle
turtle中的畫布就是用于繪畫的區域,我們可以設置它的大小和初始位置。
常用的畫布方法:
screensize()方法
語法:turtle.screensize(canvwidth=None, canvheight=None, bg=None) canvwidth -- 寬 canvheight -- 高 bg -- 背景顏色
import turtle, time turtle.screensize(800, 600, "green") turtle.screensize() #返回默認大小(400, 300) time.sleep(3)
setup()方法
語法:turtle.setup(width=0.5, height=0.75, startx=None, starty=None) width、height -- 輸入寬和高為整數時, 表示像素。為小數時, 表示占據電腦屏幕的比例 startx、starty -- 這一坐標表示 矩形窗口左上角頂點的位置,如果為空,則窗口位于屏幕中心
import turtle, time turtle.screensize(800, 600, "green") turtle.screensize() #返回默認大小(400, 300) time.sleep(3)
畫筆有顏色、畫線的寬度等屬性:
turtle.pensize():設置畫筆的寬度;
turtle.pencolor():沒有參數傳入返回當前畫筆顏色。傳入參數設置畫筆顏色,可以是字符串如”red”、”blue”,也可以是RGB 3元組。
turtle.speed():設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。
操縱海龜繪圖有多種命令,這些命令可以分為3中,分別是:畫筆運動命令、畫筆控制命令和全局控制命令。
| 命令 | 說明 |
|---|---|
| turtle.forward(distance) | 向當前畫筆方向移動distance像素長 |
| turtle.backward(distance) | 向當前畫筆相反方向移動distance像素長度 |
| turtle.right(degree) | 順時針移動degree° |
| turtle.left(degree) | 逆時針移動degree° |
| turtle.pendown() | 移動時繪制圖形,缺省時也為繪制 |
| turtle.goto(x,y) | 將畫筆移動到坐標為x,y的位置 |
| turtle.penup() | 移動時不繪制圖形,提起筆,用于另起一個地方繪制時用 |
| turtle.speed(speed) | 畫筆繪制的速度范圍[0,10]整數 |
| turtle.circle() | 畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓 |
| 命令 | 說明 |
|---|---|
| turtle.pensize(width) | 繪制圖形時的寬度 |
| turtle.pencolor() | 畫筆顏色 |
| turtle.fillcolor(colorstring) | 繪制圖形的填充顏色 |
| turtle.color(color1, color2) | 同時設置pencolor=color1, fillcolor=color2 |
| turtle.filling() | 返回當前是否在填充狀態 |
| turtle.begin_fill() | 準備開始填充圖形 |
| turtle.end_fill() | 填充完成 |
| turtle.hideturtle() | 隱藏箭頭顯示; |
| turtle.showturtle() | 與hideturtle()函數對應 |
| 命令 | 說明 |
|---|---|
| turtle.clear() | 清空turtle窗口,但是turtle的位置和狀態不會改變 |
| turtle.reset() | 清空窗口,重置turtle狀態為起始狀態 |
| turtle.undo() | 撤銷上一個turtle動作 |
| turtle.isvisible() | 返回當前turtle是否可見 |
| stamp() | 復制當前圖形 |
| turtle.write(s[,font=(“font-name”,font_size,”font_type”)]) | 寫文本,s為文本內容,font是字體的參數,里面分別為字體名稱,大小和類型;font為可選項, font的參數也是可選項 |
繪制一個五角星
import turtle
import time
turtle.setup(1500, 1400, 0, 0)
turtle.pensize(5)
turtle.pencolor("pink")
turtle.fillcolor("red")
turtle.begin_fill()
for _ in range(5):
turtle.forward(400)
turtle.right(144)
turtle.end_fill()
time.sleep(5)之前看到一個實例,可以繪制出一棵好看的櫻花樹,有興趣的可以看一下呀
鏈接:
https://blog.csdn.net/z564359805/article/details/85861481#commentBox
具體代碼如下:
#!/usr/bin/env python
# coding=utf-8
# 畫一棵櫻花
import turtle
import random
from turtle import *
from time import sleep
# 畫櫻花的軀干(60,t)
def tree(branchLen, t):
sleep(0.0005)
if branchLen > 3:
if 8 <= branchLen <= 12:
if random.randint(0, 2) == 0:
t.color('snow') # 白
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branchLen / 3)
elif branchLen < 8:
if random.randint(0, 1) == 0:
t.color('snow')
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branchLen / 2)
else:
t.color('sienna') # 赭(zhě)色
t.pensize(branchLen / 10) # 6
t.forward(branchLen)
a = 1.5 * random.random()
t.right(20 * a)
b = 1.5 * random.random()
tree(branchLen - 10 * b, t)
t.left(40 * a)
tree(branchLen - 10 * b, t)
t.right(20 * a)
t.up()
t.backward(branchLen)
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)
def main():
# 繪圖區域
t = turtle.Turtle()
# 畫布大小
w = turtle.Screen()
t.hideturtle() # 隱藏畫筆
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()
main()
關于turtle庫的安裝以及原理分析是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。