這是今年11月26日嘉興市技能節的一道題目,
用海龜畫圖模塊在畫布上畫出滿天星圖案
要求:
(1)、 Turtle 畫布的大小為:寬 800 像素,高 600 像素;
(2)、 共畫 100 個五角星, 每個五角星在畫布內顯示位置是隨機的, 五角星邊長取[15,25]
之間隨機數, 五角星之間允許產生重疊甚至是完全覆蓋
(3) 五角星的顏色是隨機的
(4) 隱藏畫筆
我們先來總結一下需要用到的知識點:
import turtle 海歸庫
import random 隨機函數庫
turtle.setup()畫布設置(尺寸,距離)
turtle.hideturtle()隱藏畫筆
turtle.bgcolor("black")畫布背景色
turtle.color(畫筆顏色,填充顏色) ps:可以使用顏色名稱或十六進位RGB代碼
for j in range(),for循環,用於繪製五角星
其餘還有抬筆、落筆、填充開始、填充結束、移動到指定位置等等。
開始製作:
第一步,導入海龜庫和隨機函數庫
import turtle
import random
第二步,使用setup()設置畫布尺寸為800px*600px;使用p來代替turtle.Pen()。一勞永逸的做法;隱藏畫筆;設置速度,化的更快些;設置畫布北京為黑色。
turtle.setup(width=800,height=500)
p=turtle.Pen()
p.hideturtle()
turtle.speed(10)
turtle.bgcolor("black")
第三步,新建列表c,列表中的元素為0~9和A~F,都改為字符類型,方便後面使用。
新建變量color初始化為空字符。
c=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
color=""
第四步,使用for循環,重複100次。
重複繪製100個五角星並填充上所及的顏色,隨機的邊長(大小),隨機的位置
for i in range(100):、
抬筆
p.up()
移動到隨機位置,由於畫布的尺寸為800*600,所以x軸的隨機範圍為-400~400,y軸的隨機範圍為-300~300。
p.goto(random.randint(-400,400),random.randint(-300,300))
落筆
p.pd()
重置color變量,每一次循環都color變量進行重置。
color=""
隨機的在列表c中取6次值,並進行累加,最後於「#」累加,這樣才是可以使用的十六進位顏色編碼
for k in range(6):
color=color+c[random.randint(0,15)]
color="#"+color
設置畫筆顏色和填充顏色都是color
p.color(color,color)
p.begin_fill()
設置五角星的邊長為變量L,隨即範圍為15~25
L=random.randint(15,25)
繪製五角星邊長為L,五角星的每個角是36°,所以循環過程中每次旋轉144°
for j in range(5):
p.fd(L)
p.left(144)
p.end_fill()
腳本和運行效果:
好了,以上就是我整個製作步驟了,應該還有其他的解題方法,如果過你有不一樣的製作方法,請在評論區留言分享給我,我們一同進步!我是 大於小澍,一個陪孩子玩的90程式設計師。感謝你的閱讀。