Python海龜繪圖詳解
hello,大家好,我是Dream。最近有小伙伴私信我,說讓我出一篇海龜畫圖,這其實我也不太能弄得明白,那在這里我和大家一塊梳理一下!記得給我點贊收藏喲~
一.畫筆和屏幕
這里單獨拿開一個講的話會很抽象,因為一個是線,另一個是面,面是線的載體,線是面的內(nèi)容
首先大家先運行這一段代碼:
import turtle#調(diào)用turtle庫 turtle.title("繪制第一只海龜")#設(shè)置窗口名稱 print('開始了') turtle.forward(100) turtle.left(30) #左轉(zhuǎn)彎和右轉(zhuǎn)彎一個意思不用寫 turtle.forward(100)
我們可以看到運行結(jié)果是這個:
你會發(fā)現(xiàn)他只會存在一瞬間,畫完就不見了
我們總會想讓美好的瞬間多存在一會,這個時候我們往往會用到time這個庫
讓我們看一看新的代碼:
import turtle import time turtle.title("繪制第一只海龜") print('let's go') turtle.forward(100) turtle.left(30) #左轉(zhuǎn)彎和右轉(zhuǎn)彎一個意思不用寫 turtle.forward(100) time.sleep(10)#這里調(diào)用了time庫,sleep顧名思義,睡眠的意思,括號里是秒數(shù),就是你想讓他停留幾秒的意思
現(xiàn)在我們的畫面便可以停留10s了
當然不用time也是可以的,上代碼:
import turtle turtle.title("繪制第一只海龜") print('開始了') turtle.forward(100) turtle.left(30) #左轉(zhuǎn)彎和右轉(zhuǎn)彎一個意思不用寫 turtle.forward(100) turtle.exitonclick() # 實現(xiàn)單擊鼠標左鍵時關(guān)閉窗口
或者你可以換成 turtle.done() 讓畫面一直停留
說了折磨多,那屏幕是怎么產(chǎn)生的呢?
來直接看代碼:
turtle.setup(width=400, height=300, startx=None, starty=None)
這里是設(shè)置屏幕的大小,就像上一段代碼一樣,如果你沒有設(shè)置大小的話,那屏幕就是默認值。
此處:
width:設(shè)置窗口的寬度,默認為屏幕的 50%。
height:設(shè)置窗口的高度,默認為屏幕的 50%。
startx:窗口距離屏幕左邊緣多少距離,負值表示距離右邊緣,None 表示窗口水平居中。
starty:窗口距離屏幕上邊緣多少距離,負值表示距離下邊緣,None 表示窗口垂直居中。
當然如果你覺得屏幕背景白色太單調(diào)的話你也可以設(shè)置一下他的背景顏色或者插入自己的圖片(但圖片大小不一,想要設(shè)置的好看的話,需要自己調(diào)節(jié)屏幕大小尺寸)
話不多說,直接上代碼:
import turtle turtle.title("繪制第一只海龜") turtle.bgcolor("green")#這里是設(shè)計背景顏色 turtle.bgpic(picname='./imgs/xu.gif')#這里是插入圖片,圖片必須放在同一路徑文件下 #圖片格式必須為gif?。?!,不然無法識別 turtle.forward(100) turtle.left(30) #左轉(zhuǎn)彎和右轉(zhuǎn)彎一個意思不用寫 turtle.forward(100) turtle.done() # 海龜繪圖程序的結(jié)束語句(開始主循環(huán))turtle.done() # 海龜繪圖程序的結(jié)束語句(開始主循環(huán))
這是我自己的背景:
還行啊吧,我的眼光還是不錯的喲~
關(guān)于屏幕知識也就這些了,接下來說一下畫筆:
拿我們剛才寫的代碼來說:
import turtle turtle.title("繪制第一只海龜") turtle.bgcolor("green")#這里是設(shè)計背景顏色 turtle.bgpic(picname='./imgs/xu.gif') turtle.forward(100) turtle.left(30) #左轉(zhuǎn)彎和右轉(zhuǎn)彎一個意思不用寫 turtle.forward(100) turtle.done()
forward表示向前走,left向左拐多少度,back向后,right向右拐多少度,這是最基本的,看點稍微高級一點的:
import turtle import time turtle.goto(100, 100) turtle.goto(-100, 100) turtle.goto(100, -100) turtle.goto(-100, -100) turtle.goto(0, 0) turtle.penup()#這里指從0開始抬筆,繼續(xù)路線,只是不畫了 turtle.forward(100) turtle.right(90) turtle.pendown()#落筆繼續(xù)畫 turtle.color("red")#畫筆顏色 turtle.goto(100, -100) time.sleep(5)
這里:初始位置都是0,就是屏幕中央
放下筆:pendown()
抬起筆:penup()
到指定坐標:goto(x, y)
顏色:color(“cc”)
畫筆的顏色主要有:
黃色:yellow
紅色:red
藍色:blue
綠色:green
粉色:pink
紫色:purple
灰色:grey
橘色:orange
那如果你覺得畫筆太細咋辦,來上代碼:
turtle.width(5)
這個幫你調(diào)粗細,初始值為1
如果你覺得速度不對呢,來上代碼:
turtle.speed(0) # 設(shè)置畫筆的速度,0為最快
其中0最快,直接出結(jié)果,1最慢,然后從2~10依次加快
那這些就是你要掌握的基礎(chǔ)知識了~
二.實戰(zhàn)與應(yīng)用
1.寫字
如何在上面寫字呢:來來來上代碼:
turtle.write( arg, move=False, align="left", font=("Arial", 8, "normal"))
arg:必選參數(shù),用于指定要輸出的文字內(nèi)容,該內(nèi)容會輸出到當前海龜光標的所在位置。
move:可選參數(shù),用于指定是否移動畫筆到文本的右下角**,默認為False (不移動)。**
align:可選參數(shù),用于指定文字的對齊方式,其參數(shù)值為left(居左)、center(居中)或者right(居右)中的任意一個,默認為 left。
font:可選參數(shù),用于指定字體、字號和字形,通過一個三元組(字體,字號,字形)指定。
說明:字形可設(shè)置的值為normal(表示正常)、bold(粗體)、italic(斜體)、underline(下劃線)等。
上代碼:
import turtle # 導(dǎo)入海龜繪圖模塊 turtle.color("green") # 填充顏色 turtle.up() # 抬筆 turtle.goto(-300,0) turtle.down() # 落筆 turtle.write("徐以鵬比易烊千璽帥億點。", font=("宋體", 18, "normal")) turtle.done() # 海龜繪圖程序的結(jié)束語句(開始主循環(huán))
那就是這個效果了~
2.用于交互式寫字
import turtle # 導(dǎo)入海龜繪圖模塊 turtle.color("green") # 填充顏色 word = turtle.textinput("溫馨提示:", "請輸入要打印的文字") # 彈出輸入對話框 turtle.write(word, True, font=("宋體", 18, "italic")) # 輸出文字 turtle.done() # 海龜繪圖程序的結(jié)束語句(開始主循環(huán))
3.自己控制方向
import turtle def move(): turtle.left(90) turtle.forward(100) turtle.listen()#監(jiān)聽鼠標 turtle.onkey(move, "w")#按w進行走動 turtle.done()
import turtle def move(): turtle.forward(2) turtle.listen() turtle.onkeypress(move, "w")#一直按w才走 turtle.done()
4.拖動小海龜畫圖
ondrag():表示處理鼠標拖動事件
默認值為1(鼠標左鍵)、2(鼠標中鍵,即按下滑輪)、3(鼠標右鍵)
import turtle t = turtle.Turtle() t.shape("turtle") t.color("green") turtle.listen() def fun(x, y): t.pendown() t.goto(x, y) t.ondrag(fun, 1) turtle.done()
5.規(guī)定時間后開始畫
ontimer() 方法來實現(xiàn)一個計時器,用于達到指定時間時,執(zhí)行一個操作?
import turtle
def fun(): # 繪制正方形
for i in range(4):
turtle.forward(100)
turtle.left(90)
turtle.getscreen().ontimer(fun, 3000) # 設(shè)置計時器
turtle.done() # 海龜繪圖程序的結(jié)束語句(開始主循環(huán))
到此這篇關(guān)于Python海龜繪圖詳解的文章就介紹到這了,更多相關(guān)Python海龜繪圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
動態(tài)規(guī)劃之矩陣連乘問題Python實現(xiàn)方法
這篇文章主要介紹了動態(tài)規(guī)劃之矩陣連乘問題Python實現(xiàn)方法,較為詳細的分析了矩陣連乘問題的概念、原理并結(jié)合實例形式分析了Python相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-11-11Micropython固件使用Pico刷固件并配置VsCode開發(fā)環(huán)境的方法
這篇文章主要介紹了Micropython固件使用Pico刷固件并配置VsCode開發(fā)環(huán)境的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-07-07讓Python腳本暫停執(zhí)行的幾種方法(小結(jié))
這篇文章主要介紹了讓Python腳本暫停執(zhí)行的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python中flatten( ),matrix.A用法說明
這篇文章主要介紹了Python中flatten( ),matrix.A用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07