2018年7月23日 星期一

VPython進階教學:按鈕

作者:王一哲
日期:2018/7/23




由於我們之前做的動畫,都是在按在 F5 後自動開始執行,如果我們想要在動畫中新增按鈕,讓使用者可以自己控制動畫,應該要怎麼做呢?我們希望按鈕的功能有:

  1. Run:按下時開始執行動畫
  2. Reset:按下時還原成起始狀態
  3. Stop:按下時停止執行程式

我們使用最簡單的動畫〈等速度直線運動〉的程式碼來改寫,成果如下:

有按鈕的等速度直線運動畫面截圖

按下 Run 按鈕後

用滑桿改變速度,使木塊向左移動

按下 Reset 按鈕後

2018年7月15日 星期日

讀書心得: 誰說不能從武俠學物理?

讀書心得: 誰說不能從武俠學物理?

日期:2018/7/15

李開周(2018)。 誰說不能從武俠學物理? 。臺北市:時報文化。

本書的作者嘗試用物理原理分析武俠小說的內容,這完全對應到我的特質,我在大學主修物理,練過幾年國術,也讀過金庸、古龍兩位大師絕大多數的作品。但是當我在讀武俠小說時總是不斷地提醒自己,千萬不要試著用物理原理分析小說的內容,因為裡面有很多與物理原理不合之處,這麼認真分析會破壞閱讀體驗。金庸大師在《天龍八部》第三版的〈後記〉中也提到
《天龍》中的人物個性與武功本領,有很多誇張或事實上不可能的地方,如「六脈神劍」、「火焰刀」、「北冥神功」、無崖子傳功、童姥返老還童等等。讀讀者們想像一下現代派繪畫中超現實主義、像徵主義的畫風,例如一幅畫中一個女人有朝左朝右兩個頭之類,在藝術上,脫離現實的表現方式是容許的。

而本書的作者偏要認真地用物理原理分析武俠小說,替小說中種種不可思議的武功和橋段自圓其說,實在是令人佩服。


本書分為7章:
  1. 武俠世界的速度
  2. 武俠世界的力度
  3. 武俠世界的功和能
  4. 武俠世界的聲和光
  5. 電場、磁場、氣場
  6. 凌波微步與量子物理
  7. 小龍女的不老密訣

2018年7月14日 星期六

VPython進階教學:蛇擺 Pendulum Wave

作者:王一哲
日期:2018/7/14




最近看到建國中學曾靖夫老師的 VPython 講義〈Lecture 7 多物件控制(list) - 波動現象模擬〉,其中一項作業就是要學生做出蛇擺的動畫。蛇擺的英文為 pendulum wave,如果照字面翻譯應該譯為擺波,由一組數個的單擺構成的波,假設整組蛇擺的週期為 $T$,其中週期最長的單擺在這段時間內共擺動 $N$ 次,則週期次長的單擺擺動 $N-1$ 次,依此類推。我們之前已經做過〈單擺〉的動畫,可以以此為基礎改造一下程式碼,應該很容易就能做出蛇擺的動畫。關於蛇擺的物理原理介紹請參考中央大學科學教育中心的網頁:〈蛇擺〉、〈大型蛇擺〉。

這是我用 VPython 在 Glowscript 網站製作的動畫,連結為 https://www.glowscript.org/#/user/yizhe/folder/Public/program/PendulumWave


這個程式是進階教材,我們要善用類別 (class)的特性,使程式在使用上更加方便。程式的目標:

  1. 輸入蛇擺的週期、週期最長的單擺在蛇擺的一個週期內擺動的次數、單擺個數,自動計算所有單擺的週期及擺長。
  2. 建立一個類別 (class),輸入單擺的週期、懸掛位置,自動產生擺錘、繩子,掛於指定的位置,將擺錘放置於最大擺角。計算單擺對應的轉動慣量,設定起始的角速度、角加速度為0。
  3. 在類別中建立一個方法 (mehtod),輸入經過的時間,計算擺錘所受力矩、角加速度、角速度,更新擺錘的位置及繩子的方向。