ANACONDA 編輯器下載
∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑
【對於初學者而言,該如何理解海龜繪圖法?使用程式庫的人其實就是海龜,而海龜不懂數學...】站在不懂程式的海龜角度來看,要使用程式碼來實作單位向量、繞軸旋轉的座標計算,看來是有點複雜呢?...
如果你用過任何程式語言內建的繪圖程式庫,會知道就算想要畫一條線,至少須懂得繪圖時的座標系統、基本的繪圖物件初始化作法,以及如何呼叫畫線函式等。
而使用海龜繪圖,可以讓程式初學者在不懂數學,連繪圖程式庫也不用瞭解的情況下,只要利用程式語言中基本的重複結構,就能得到立即的圖樣回饋。就這方面來說,海龜繪圖其實是封裝的絕佳範例,將一切隱藏在海龜體內。
如果想實作一隻在沙灘上移動的海龜,海龜體內須藏有目前位置的座標,以及目前相對於直角座標中某個軸的角度(通常是X軸),這樣才能知道海龜的頭朝向哪個方向。
而如果海龜轉彎了,那就是目前角度加上轉彎角度,以作為海龜轉彎後的新角度。
如果海龜移動L長度,新座標可以用基本的三角函式來計算,這並不難,X方向移動的長度,會是L乘上目前角度的餘弦值,Y方向移動長度,會是L乘上目前角度的正弦值,兩個值各與目前x、y座標值相加,就好了。
為了能在移動過的路徑上畫線,移動前,要記錄目前座標值,接著,取得移動後的座標值,然後,用這兩個座標值呼叫繪製直線的函式。
無論海龜要畫的圖案有多複雜,基本上,就是重複地運用以上的流程及數學運算了。...
然而,每次海龜的某個動作,都會是某種重複的計算流程,只要將這些流程定義完成,再複雜的圖案,就可以重複地運用這些定義來構造。
進一步地,若站在3D海龜實作者的角度來看,在使用程式碼實作向量運算、繞軸轉動之類的數學公式,不也就是在重複地運用數學方面的模式嗎?】
# EX 01:練習字串的組合
str_a = (' I am Mark ')# Ex 02:練習將三個變數設定成同一值( 此處是20 )後進行邏輯運算;完成後再轉換成字串型態,並加上ok字樣後(使用 + 號),列印到螢幕上。
str_b = (' Hello world ! ')
print ( str_b + str_a )
提示:符號【+】:除了是邏輯運算符號外,也能用在 字串( str ) 的組合上。
a = b = c = 20
print (str((a + 5) * b - c) + 'ok')
講義區塊(基本指令):
資料類型轉換指令:
- int ():將資料轉換成整數
- float () :將資料轉換成 浮點數
- str () :將資料轉換成 字串
輸出指令:
- Print ():將資料列印到螢幕上 【PS : Amy 的家庭作業在課本的P26 ~ P29】
- Type () :取得資料型態
運算(方式)
- +:加號
- -:減號
- *:乘
- /:除
- **:次方,如:7**2 就是 7^2
- pow (x,y)次方函數 , 如:x 的 y 次方
堆積木:模組的使用
# Ex 05 若一等差數列中 a7 項為 10 ,試求 a3 + a11 = ?
- 小烏龜繪圖板 turtle
# Ex 03 請將後續括號內的資料,以三行列印的螢幕上:【Hello ! I'm Mark . Happy new year ~】import turtlet = turtle.Pen()
# tip : 請用 \n (強制換行)控制項。
str_EX03 = "Hello ! \nI'm Mark . \nHappy new year ~"
print ( EX03 )# Ex 04 請將後續括號內的資料,以三行列印的螢幕上:【Hello ! I'm Mark . Happy new year ~】
# tip : 請比較本範例與 Ex 03 不同之處
print ( "Hello ! \nI'm Mark . \nHappy new year ~" )
# 備註:列印與搜尋時,可用萬用字元作為索引項 :【*(字串)】【 ?(字元)】
d = 1 #設定公差為1
a7 = 10 #依題意將 a7 項目設定為 10
a1 = 10 - 6 * d # 依題意列出首項( a1 )的推算式
a3 = a1 + 2 * d #
a11 = a1 + 10 * d #
Print ( a3 + a11 )