首页
/
每日頭條
/
科技
/
python畫蝸牛号
python畫蝸牛号
更新时间:2026-01-31 19:40:49
介紹

用遞歸和Turtle庫繪制八進制的雪花。以下是遞歸深度從1~5的八面形雪花:

python畫蝸牛号(少兒學編程系列---使用遞歸畫雪花)1

除了通過遞歸深度停止遞歸,還可以在半徑小于特定大小時停止遞歸。以下八面形雪花是通過将半徑遞歸的阈值設置為10生成的。現在你可以看到所有的八邊形都有相同的尺寸

python畫蝸牛号(少兒學編程系列---使用遞歸畫雪花)2

源代碼

import turtle from turtle import * import math import random # 以指定的中心,畫八面形 def octagon(x, y, r): # x,y is the center up() goto(x, y) seth(90) fd(r) left(180 - 135 / 2) down() begin_fill() edgeSize = 2 * r * math.sin(math.radians(45 / 2)) for _ in range(8): fd(edgeSize) left(45) end_fill() # 畫八面形雪花 def octaflake(x, y, r, n): # 根據遞歸深度(recursion depths)控制何時退出遞歸 # if n ==1: # octagon(x, y, r) # return # 根據八面形的半徑控制,當半徑小于10時,退出遞歸 if r < 10: octagon(x, y, r) return r2 = r / (1 1 / math.tan(math.radians(45 / 2))) octaflake(x, y, r - 2 * r2, n - 1) direction = 90 for _ in range(8): up() goto(x, y) seth(direction) fd(r - r2) octaflake(xcor(), ycor(), r2, n - 1) direction = 45 def main(): screen = Screen() screen.setup(800, 600) screen.title('cloudcloder出品--畫雪花') bgcolor('royal blue') fillcolor('white') pencolor('steel blue') speed(0) screen.tracer(0, 0) octaflake(-200, -200, 70, 1) octaflake(-50, -50, 80, 2) octaflake(-190, 100, 50, 3) octaflake(200, 100, 80, 4) octaflake(-190, 200, 50, 3) octaflake(-190, 0, 50, 3) octaflake(180, -140, 120, 5) screen.update() done() if __name__ == "__main__": hideturtle() up() goto(-260, 270) write("今日頭條-cloudcoder出品", align='left', font=('fangsong', 14, 'normal')) showturtle() main()

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
Haier電視曆史記錄怎麼清除
Haier電視曆史記錄怎麼清除
1、進入浏覽器界面,按菜單選中地址欄,按導航右鍵往右移動至浏覽器設置選項(該選項為齒輪圖标),按确定鍵進入頁面,該頁面有清除曆史記錄、清除我的書簽、清除cookie",用戶按下鍵選中清除曆史記錄”按确定鍵即可全部清除。2、進入浏覽器界面,按菜單選中地址欄,按導航右鍵往右移動至曆史記錄選項(該選項圖标類似時鐘,就在齒輪圖标右邊),按确定鍵進入頁面,就可看到每條浏覽過的網頁記錄,每條記錄後面都有個叉,
2026-01-31
凱美瑞保值率怎麼樣
凱美瑞保值率怎麼樣
1、所謂保值率,就是指某款車型在使用一段時期後,将其賣出的價格與先前購買價格的比值,它取決于汽車的性能、價格變動幅度、可靠性、配件價格及維修便捷程度等多項因素,是汽車綜合水平的體現。2、凱美瑞前五年平均保值率分别為:68.7%,62%,55.9%,50%,44.1%;保值率在中型車之中排第9名;3、...
2026-01-31
楊梅樹施什麼肥
楊梅樹施什麼肥
1、為提高楊梅樹的品質與産量,在施肥中以氮、磷、鉀三種肥料為主,但在施用時因楊梅固氮能力差,所以應少施多次。2、楊梅中後期施肥的管理以促進結果發育,提高品質為主,施肥時氮、磷、鉀三者的比例為1:0.5:4為宜。一是壯果肥。3、施肥一般在4月上中旬施,以促進夏梢生長和果實發育;二是采後肥。在大年采果後...
2026-01-31
大衆途觀首保多少公裡
大衆途觀首保多少公裡
1、途觀在行駛5000公裡後就要去進行首保了,車友們一定要按時去進行首保。首保不要延後也不要提前,延後或提前對車子都是不好的。2、汽車都是有一個磨合期的,新車剛買來後,發動機内裝的是初裝油,這種機油是很适合磨合期内使用的,所以車友們不要提前去首保也不要延後首保。3、新車首保一般是免費的,保養周期一般都在使用手冊裡有明确的說明,如果4S店單方面要求縮短保養周期是不合理的,不用理會。值得一提的是,根據
2026-01-31
明銳後備箱打不開的原因是什麼
明銳後備箱打不開的原因是什麼
1、連動杆或者鎖芯問題。如經常是用鑰匙打後箱蓋的,那是連動杆斷了,到修理廠去開。如一直是用搖控器開後箱蓋的。那是鎖芯髒了或生鏽了,用除鏽劑往鎖芯裡噴幾次就能打開。2、凍住或卡主。要是冬天洗的,有可能凍住了。要是夏天的話可能有東西卡住了。3、沒有解鎖。沒有用遙控鑰匙解鎖,所以會很難打開。4、後備箱本身出問題。後備箱本身出問題,比如,後備箱的線斷了或者是其他後備箱原因導緻汽車後備箱打不開。
2026-01-31
Copyright 2023-2026 - www.tftnews.com All Rights Reserved