首页
/
每日頭條
/
科技
/
python畫蝸牛号
python畫蝸牛号
更新时间:2026-01-15 03:18:02
介紹

用遞歸和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、局域網局域網(LocalAreaNetwork),...
2026-01-15
打印機連在電腦上怎麼用
打印機連在電腦上怎麼用
1、打開電腦,在搜索欄搜索“控制面闆”。2、點擊進入後,選擇“硬件和聲音”。3、選擇“設備和打印機”...
2026-01-15
手機摔了一下開不了機了什麼原因
手機摔了一下開不了機了什麼原因
1、開機線路不正常:使用外接電源給手機供電,使用電聯表檢測看看示數是否有變化,如果沒有變化的話很可能就是開機線斷了或者開機鍵接觸不良。2、電池的供電電路不正常:使用外部接線手機進行供電,看看開機時候恢複正常,如果正常的話就确定是手機的供電電路不正常。3、手機電源的IC不正常:對照電路原理圖在電源IC的外圍電路的測試點上進行測試,看測試值是否正常。4、手機的系統時鐘和複位不正常:可以使用雙總示波器來
2026-01-15
1688可以退貨嗎
1688可以退貨嗎
視情況而定,需要商家開通支持後才可以無條件退貨。阿裡巴巴是一個采購批發平台,批發與零售确實會存在一定差異。考慮到這個點,且由于交易行為在于買、賣雙方,平台無法幹預,為了更能保障買家的權益,阿裡巴巴開放了“7天無理由退貨”由賣家自由選擇。當賣家發布信息的時候,可以選擇“是”或“否”,當這筆交易賣家選擇的是“否&rdq
2026-01-15
花呗分期商家是到賬是全部的嗎
花呗分期商家是到賬是全部的嗎
是。花呗分期是指用戶分期歸還花呗,但付款金額一次性打給商家,商家隻有拿到全款以後,才會将商品賣給客戶。舉例2000元的商品,用戶分期付款,第一期隻需要出200元,如果商家隻收到200元,就不會把2000元的商品銷售給客戶。花呗分期付款會一次性扣除支付金額,因此花呗額度不夠則不可以分期付款。花呗:呗全稱是螞蟻花呗,是螞蟻金服推出的一款消費信貸産品,申請開通後,将獲得500-50000元不等的消費額度
2026-01-15
Copyright 2023-2026 - www.tftnews.com All Rights Reserved