Goal: 藉由有趣的「海龜動畫繪圖」學會基礎的 Python 程式設計
本篇介紹基礎的 Python 海龜動畫繪圖, 確實可以只以簡單的指令畫出極為複雜有趣或美麗的圖案: 內嵌正多邊形之圖案, 禪繞圖等
“Talk is cheap. Show me the code.”
― Linus Torvalds
老子第41章
上德若谷
大白若辱
大方無隅
大器晚成
大音希聲
大象無形
道隱無名
拳打千遍, 身法自然
“There’s no shortage of remarkable ideas, what’s missing is the will to execute them.” – Seth Godin
「很棒的點子永遠不會匱乏,然而缺少的是執行點子的意志力。」—賽斯.高汀
本系列文章之連結
- 從turtle海龜動畫學習Python-高中彈性課程1 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 2 安裝 Python, 線上執行 Python link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 3 烏龜繪圖 所需之Python基礎 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 4 烏龜開始畫圖 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 5 用函數封裝重複性指令-呼叫函數令烏龜畫正 n 邊形 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 6 畫多重旋轉圓,螺旋正方形 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 6.1 內嵌正多邊形 類似禪繞圖
- 從turtle海龜動畫 學習 Python - 7 遞歸 recursive - 高中彈性課程系列 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 8 碎形 (分形 fractal) link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 8.1 碎形 L-system link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9 Python 物件導向介紹 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9.1 Python 物件導向的練習 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 10 藝術畫 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 11.1 氣泡排序 - 用 turtle 呈現演算法之執行動作 link
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 11.2 maze 迷宮 - 用 turtle 呈現演算法之執行動作 link
文章目录
- 本系列文章之連結
- Python 畫內嵌正方形 用到商高定理
- Python 畫內嵌正多邊形 用到餘弦定律
- Reference
Python 畫內嵌正方形 用到商高定理
# Python 畫內嵌正方形
# 20221109 By Peng-Jen Lai MATH NKNU
import math
import turtle
T=turtle.Turtle()
T.shape("turtle")
T.color("green")
T.pencolor("yellow")
T.turtlesize(1)
turtle.bgcolor("black")
T.pensize(1)
def polygon(n, sideLength):
for i in range(n):
T.fd(sideLength)
T.lt(360.0/n)
sideLength=300
turnNumber=3
#newSideLength=sideLength
turnAngle=0
sideNumber=4
shrinkingFactor=0.4
#stepLength=newSideLength*shrinkingFactor
for i in range(turnNumber):
polygon(sideNumber,sideLength)
stepLength=sideLength*shrinkingFactor
T.fd(stepLength)
turnAngle=math.atan(shrinkingFactor/(1-shrinkingFactor))*180/math.pi
# *180/pi 是因為要由radians弧度改成degree角度
T.lt(turnAngle)
# 以下是更新下一輪正方形之邊長的動作
sideLength=math.sqrt( shrinkingFactor**2+(1-shrinkingFactor)**2 )*sideLength
Python 畫內嵌正多邊形 用到餘弦定律
Reference
-
需要多隻海龜同時移動的方法, 可以參考
從 Logo 海龜繪圖 學習 Python - 高中彈性課程系列 1 課程簡介, sec 各項提示或補充之總表
https://editor.csdn.net/md/?articleId=107502070 link) -
以下這份影片的圖形與本篇的很多類似, 但是他沒有提供程式碼: https://youtu.be/hPsjMTz-aDQ link.
-
以 Python重寫 MIT pythonTturtle Log 圖 與 河西朝雄C語言書中 的海龜繪圖圖形https://download.csdn.net/download/m0_47985483/87032053 link