turtle庫
turtle庫是Python中一個很流行的繪圖函式庫,主要是依據座標軸來繪製影象,畫筆則是一隻小海龜,通過控制海龜的在座標平面的移動,從而繪製各種各樣的影象。
安裝turtle
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()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908432/viewspace-2659461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (二)turtle庫的使用
- Python學習筆記——turtle庫Python筆記
- Python繪圖Turtle庫詳解Python繪圖
- python 使用turtle庫簡單繪圖5個列子Python繪圖
- Python基本圖形繪製--模組1:turtle庫的使用Python
- Python3 turtle教程Python
- Python Turtle實現彈球Python
- Python寫春聯(turtle版)Python
- 【python:turtle繪畫 聖誕樹】Python
- turtle繪製國際象棋棋盤
- turtle實現美國隊長盾牌
- python中turtle如何畫太陽花?Python
- 使用python的turtle繪畫滑稽臉Python
- CF 1981 C Turtle and an Incomplete Sequence(*1800) 構造
- Python繪圖,聖誕樹,花,愛心 | Turtle篇Python繪圖
- Python turtle 模組可以編寫遊戲,是真的嗎?Python遊戲
- Python如何運用turtle繪製陰陽太極圖Python
- 使用Python的turtle模組繪製美麗的櫻花樹Python
- 用python的小海龜 Turtle 畫一朵好看又有趣的小花Python
- Python-python3.8安裝turtle的各種問題及解決方案Python
- mysqldump備份單庫、部分庫、全庫、及排除部分庫MySql
- Linux共享庫、靜態庫、動態庫詳解Linux
- 倉庫系統(2)-商品庫存/庫位管理
- Python開發環境詳細配置Anaconda+請求庫+解析庫+資料庫+儲存庫+web庫+爬蟲框架+部署庫---Windows篇Python開發環境資料庫Web爬蟲框架Windows
- 靜態庫與動態庫
- Oracle ADG 備庫新增備庫Oracle
- NPM酷庫:bluebird Promise工具庫NPMPromise
- iOS 靜態庫 與私有庫iOS
- 從 1 到完美,寫一個 js 庫、node 庫、前端元件庫JS前端元件
- git倉庫修改遠端倉庫Git
- 製作CocoaPods公有庫和私有庫
- 淺析Beautiful Soup庫和Lxml庫XML
- ios靜態庫和動態庫iOS
- 筆記: 判斷lib庫是動態庫還是靜態庫筆記
- 題庫
- 模板庫
- ASIWebPageRequest庫Web
- Faraday庫