用Python的Turtle制作自己的星空

前言
Python模擬星空,你值得擁有!uu們一周不見啦,本周博主參考網(wǎng)上大佬們的星空,給大家?guī)砹藢儆谧约旱男强眨靵砜纯窗蓗
Turtle基礎(chǔ)
小海龜(Turtle)是Python中畫圖的一個(gè)重要的包(內(nèi)置包),里面包含豐富的畫圖工具以及畫圖的各種功能,當(dāng)你學(xué)會了用Turtle畫圖后,你可以畫任何你想畫的圖案哦
1.1 Turtle畫板
Turtle的畫板大小可以用turtle.screensize()函數(shù)來設(shè)置
turtle.screensize(width,height,bg):設(shè)置畫板的大小,包含長和寬,width為寬,height為高,bg為畫布顏色
1.2 Turtle畫筆
Turtle的畫筆有幾個(gè)常用的函數(shù)
①turtle.penup():抬起畫筆,此時(shí)移動畫筆不會在畫布上留下痕跡哦 ②turtle.pendown():放下畫筆,與turtle.penup相對應(yīng),放下畫筆后就可以繼續(xù)畫畫了(放下畫筆后畫畫會在畫布上留下痕跡) ③turtle.pensize():控制畫筆的大小(可以根據(jù)需求自行定義畫筆的大小哦) ④turtle.pencolor():控制畫筆的顏色(可以自己在網(wǎng)上查閱所有python可以使用的顏色,python里面可以用的顏色有很多的哦) ⑤turtle.hideturtle():隱藏畫筆(隱藏畫筆以后畫圖時(shí)畫筆就看不到了)
1.3 Turtle畫圖
在畫圖的過程中,我們經(jīng)常要使用一些簡單的移動函數(shù)
①turtle.forward(x):將畫筆向前移動x個(gè)像素(x可以理解為距離) ②turtle.backward(x):將畫筆向后退x個(gè)像素(x可以理解為距離) ③turtle.left(n):將畫筆向左旋轉(zhuǎn)n度 ④turtle.right(n):將畫筆向右旋轉(zhuǎn)n度 ⑤turtle.speed():設(shè)置畫筆畫圖的速度(1~10遞增,0最快)
1.4 Turtle填色
在畫好圖后,我們經(jīng)常需要對其進(jìn)行填色,這里可以用turtle.fillcolor()函數(shù),括號里寫入你想填充的顏色即可。
在使用turtle.fillcolor()函數(shù)要注意其基本格式
turtle.beginfill() #開始填充 turtle.fillcolor() #輸入填充的顏色 turtle.endfill() #結(jié)束填充
1.5 Turtle寫字
在完成整個(gè)畫圖后,我們可以使用turtle.write()函數(shù)進(jìn)行寫字
turtle.write(" ",move,align,font)
① 第一個(gè)位置雙引號內(nèi)填入要寫的字
② move(可選):在默認(rèn)情況下,move為false。如果move為true,則筆將移動到右下角
③ align(可選):可取值是left即左、center即中、right即右之一,是字符串格式
④ font(可選):字體三元組(fontname、fontsize、fonttype),fontname即字體名稱(字符串格式,如“宋體”),fontsize即字體大小),fonttype即字體類型如:normal(普通)、bold(粗體)、italic(斜體)
模擬星空
簡單了解turtle小海龜后,讓我們一起來模擬星空吧!
模擬星球
我們將每一個(gè)星球看成一個(gè)質(zhì)點(diǎn),每一個(gè)質(zhì)點(diǎn)用小海龜表示,通過克隆小海龜生成一個(gè)個(gè)星球
t=tu.Turtle(visible=False,shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
t.goto(ra.randint(width/2,width),ra.randint(-height/2,height/2))
for i in range(99):
star=t.clone()
s=ra.uniform(0,1)/3
star.shapesize(s,s)
star.speed(ra.randint(2,5))
star.setx(ra.randint(width/2,width))
star.sety(ra.randint(-height/2,height/2))
star.showturtle()
stars.append(star)
浪漫星空
通過循環(huán)來模擬星空
當(dāng)每個(gè)星球從左邊消失時(shí),我們將他從新加入右側(cè),繼續(xù)循環(huán)
while True:
for star in stars:
star.setx(star.xcor()-star.speed())
if star.xcor()<-width/2:
star.hideturtle()
star.setx(ra.randint(width/2,width))
star.sety(ra.randint(-height/2,height/2))
star.showturtle()
到此這篇關(guān)于用Python的Turtle制作自己的星空的文章就介紹到這了,更多相關(guān)Python Turtle制作星空內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法
這篇文章主要介紹了python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法,可實(shí)現(xiàn)針對文件夾及文件內(nèi)關(guān)鍵詞的搜索功能,需要的朋友可以參考下2015-06-06
Django Admin實(shí)現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))
多級菜單在很多上面都有應(yīng)用,這篇文章主要介紹了Django Admin實(shí)現(xiàn)三級聯(lián)動(省市區(qū)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
python使用requests設(shè)置讀取超時(shí)時(shí)間
在Python中,使用requests庫進(jìn)行網(wǎng)絡(luò)請求時(shí),可以通過設(shè)置?timeout參數(shù)來指定讀取超時(shí)時(shí)間,本文就來介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
python基于Tkinter實(shí)現(xiàn)人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python基于Tkinter實(shí)現(xiàn)人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧
平時(shí)我們把在if結(jié)構(gòu)中使用else語句當(dāng)作理所當(dāng)然,然而,Python強(qiáng)大的語法糖可以讓else語句在for和while循環(huán)中使用!下面我們就通過例子來看一下Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧2016-05-05
Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素示例【二分查找】
這篇文章主要介紹了Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素,結(jié)合實(shí)例形式分析了Python基于二分查找針對數(shù)組查找相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-02-02
基于PyTorch實(shí)現(xiàn)EdgeCNN的實(shí)戰(zhàn)教程
本文我們將使用PyTorch來簡易實(shí)現(xiàn)一個(gè)EdgeCNN,不使用PyG庫,讓新手可以理解如何PyTorch來搭建一個(gè)簡易的圖網(wǎng)絡(luò)實(shí)例demo,感興趣的朋友跟隨小編一起看看吧2023-02-02
Python實(shí)現(xiàn)進(jìn)度條和時(shí)間預(yù)估的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)進(jìn)度條和時(shí)間預(yù)估的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

