如何使用Python3繪製內切等邊三角形

用遞歸的方法循環繪製內切等邊三角形,參數n影響每一步的縮退距離,以及最小等邊三角形的邊長。

最後效果如下:
在這裏插入圖片描述
是不是很酷呢,代碼如下,快試試吧:

from turtle import *  # 導入turtle模塊
from math import *  # 導入math模塊

# 設置畫圖環境
speed(0)	 # 速度最快
ht()	# 隱藏箭頭

# 定義繪製三角形的遞歸函數
def sanjiaoxing(L,n):  #L是最大等邊三角形邊長,n爲內等邊三角形的縮退距離
    # 繪製三角的基礎語句
    for i in range(3):
        forward(L)
        left(120)
    if L/2 > n:
        # 計算新的等邊三角形邊長
        c = ((L-n)**2 + n**2 - 2*(L-n)*n*cos(60*pi/180))**(1/2)
        # 計算偏角
        j = (acos((c**2 + (L-n)**2 - n**2)/(2*c*(L-n))))/pi*180
        left(60)
        forward(n)
        right(60+j)
        return sanjiaoxing(c,n)   # 調用函數本身並傳入新的邊長


if __name__ == '__main__':
    sanjiaoxing(200,5)

done()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章