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

用遞歸和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
推荐阅读
來微信消息手機上面沒提示怎麼辦
來微信消息手機上面沒提示怎麼辦
1、首先打開手機上的設置,進入設置的主界面。2、在設置的主界面,點擊通知和狀态欄。3、在通知和狀态欄裡面,我們找到通知管理,進入通知管理。4、在通知管理裡面,我們找到微信這個軟件,點擊進入。5、在上面開啟允許通知,我們再進入新消息通知。6、在新消息通知裡面,我們打開允許通知即可。
2026-01-31
顯示器無信号怎麼辦
顯示器無信号怎麼辦
查看數據連接線存在松動或者損壞,松動的話擰緊,如果不是,那就找一根新的數據連接線進行測試一下,如果顯...
2026-01-31
powered by android是什麼意思
powered by android是什麼意思
以vivoX27Pro,FuntouchOS3.2為例:poweredByAndroid意思為由Android(安卓)提供支持,也就是說手機系統是安卓為底層的。而vivo手機系統為FuntouchOS,是基于安卓深度定制的系統,故開機時會顯示poweredByAndroid,因而顯示也無關系。同時國内廠商基本都是基于安卓系統二次開發的,因此例如MIUI,Flyme等等系統都會在開機時顯示power
2026-01-31
如何下載word軟件
如何下載word軟件
1、首先打開360軟件管家。2、在搜索欄中輸入Word點擊搜索。3、在頁面中找到想要的版本,點擊一鍵安裝就可以了。
2026-01-31
足彩任九獎金如何計算
足彩任九獎金如何計算
第一、任選九的獎金是有獎池分布的,也就是說和你買一樣的彩民将會和你平分所有的彩金。第二、一般的都有幾千到幾萬,根據比賽的難度來判斷,有時候會出現所謂的火鍋局,就是大家都買的一樣。第三、全部命中就是一等獎,錯一場就是二等獎,要求很嚴格,但是難度高的比賽賠率高,實力差距大的比賽賠率低。第四、根據投注的人數也有很大關系,如果當期投注的人很少,哪怕你中了一等獎,獎金也隻有一點,因為是根據獎池來平分的。
2026-01-31
Copyright 2023-2026 - www.tftnews.com All Rights Reserved