如何用程式碼表達出我想做的? 答 wakuku
最近討論區中 wakuku 所提出的問題 ,其實也是許多非理工背景的創作者所遇到的最大問題:要我怎樣把我想做的事情轉成代碼?
其實現在早就是個「一切皆可碼」的時代,風吹(particle),鳥飛(flock),樹葉型態(L-system),節奏與旋律線(AE),人體運動(Avatar),亂數詩等等等有形的無形的,都已經被數位化,進而程式化。
要把實體世界轉換為抽象概念的能力,你得要懂點數學,懂點邏輯。我指的不是那種紙筆上解題的考試能力,而是能把動作化約成數值,用已知的函數表示出來此一概念。你得要理解最基本的數學函數觀念。比方,最基本的三角函數,指數,對數。到中學程度的也就夠了。這樣的一個函數是怎麼在物理世界中被化約出來的?這樣的一條曲線在時間軸上,在物理世界中會是什麼樣的?那麼我怎麼在時間上壓縮,伸展,疊加,相乘累積?一個皮球反彈跳躍的移動軌跡,又是可以怎麼用三角函數與指數函數得到的?你必須要對自己出許多小問題,試著解決回答。
在你能有大概的函數與邏輯觀念後,你想做的其實可能早有人想過做過。如果自己實現不來,得要大量google,中文世界沒有,就去找英語日語,一定找得到演算法。比方像 maxobjects.com 裡的 pmpd 物件組,就是對物理世界物體運動的模擬。你可以不理解裡頭的運算,但是你得要會用,會調整,用此做出自己味道的東西,切忌拿來主義。
這當然有些難度,要從右腦的隨意情緒化聯想習慣,學著轉用左腦,把問題拆解成小部分,一個個解決,可以讀讀這篇文章:Thinking Like a Programmer
還有很重要的一點必須要提醒你:正確的不一定是好的,錯的不一定是壞的。請練習在左右腦間換檔。
再來,善用gigapedia ,裡頭有海量資料,英文為主:
這套書是各行各業中數學應用的例子:http://gigapedia.info/1/how%20use%20math
音樂與數學間的討論: http://gigapedia.info/1/math%20music


討論區