VPhysics試教-物理教與學

VPhysics課程,看見物理 

已開發30堂課程模組,持續開發中,若有超連結失效,請來信告知   歡迎來信洽談演講、出版事宜:wthwth@gs.cgsh.tc.edu.tw     Updated: 202003

2020物聯探實達,上課時間:禮拜四早上10:00-12:00,公 開觀課,欲觀課者請先私訊,以便準備座位…活動記錄:Facebook 社團:“物聯創客探實達” 使用glowscript: https://www.glowscript.org/#/user/wthwth/folder/MyPrograms/

2018物聯探實達,上課時間:禮拜五早上 8:05-8:55 中港高中 501教室,開放公開觀課,欲觀課者請先私訊,以便準備座位…活動記錄:Facebook 社團:“物聯探實達”

聲明:部分程式,PPT改自台大物理系石明豐教授之VPhysics網頁(感謝:南港高中高慧君老師,建中等老師之特色課程提供程式碼)。程式之視覺呈現尚未優化,若有需要,請自行調整參數。

新版:http://vphysics.ntu.edu.tw/      舊版 : http://tcjd71.wixsite.com/vpython

下載,安裝 Python 2.7 與VPthon

各章簡介:

第0章VPython環境介紹,程式語言概論

第1章水平等速度運動,雙車競走

第2章等加速度運動,靜止落體

第3章三維等加速度運動

第4章力的合成與分解,向量

第5章等速率圓周,圓錐擺,單擺,複擺

第6章水平簡諧運動,鉛直簡諧運動

第7章動量

第8章彈性碰撞

第9章行星公轉

第10-14章複雜系統

0.為何要學程式設計(Why Coding)?

PPT:中港高瞻物聯網(0) VPhysics課程簡介-201807

程式設計是一種素養導向的課程,兼具探究與實作能力、創造力、問題解決能力,是適應未來工作與生活重要的高階技能。

程式設計由複雜問題的解構(destruct,將一個大問題分解成數個小問題)、分析、簡化條件、上機測試、偵錯(debug)、程式精緻化(refine)。整個過程,需要耐心、恆心、反思與自我實現。這些做研究的能力,都是很好的人格特質。

程式設計,並不是死背一堆程式碼,或是寫一堆看不懂的機器語言。善用電腦視覺化的優勢,彌補計算的不足。遇到問題,不必急著崩潰,如何上網找資源,是現代科技人必備的IQ與EQ。利用倚天劍(物理)加屠龍刀(VPython),兩把神兵,練就絕世武功(能做出,目前網路尚沒有人會做的事),才是本網頁最重要的宗旨。

發現程式設計的樂趣,是一輩子受用不盡的快樂,享受在程式設計的挑戰與成就感,就是一種取之不盡、用之不竭的智慧。

活動:好玩的遊戲 Blockly games,比賽一:一節課,誰能闖過最多關。比賽二:一學期內,誰能最快破關。

0-1 乾淨的程式碼:用兩行程式,畫一個立體球

訓練能力:快速學習,校準calibration(先確定簡單程式可執行,再進行下一步),簡單化(將程式寫到最簡),性能最佳化(執行速度最快,最節省系統資源)

如果你在大學推甄申請的面試,跟教授說,你會用”兩行程式畫一個立體球,七行程式寫一個立體動畫”,你覺得教授會有興趣看嗎?會優先錄取嗎?

from visual import *

sphere ()

VPython程式碼 0-1 用兩行畫一個立體物件

0-1-1 第一招,變換顏色

VPython 程式碼 0-1-1: 變換顏色

0-1-2 其他立體物件

VPython程式碼 0-1-2 更多立體物件

0-1-3 畫更多球,數學座標(善用POS指令)

VPython程式碼 0-1-3: 四球

0-1-4 畫更多球,需要數學幾何來定座標

VPython程式碼 0-1-4: 畫更多球,如何定座標?

0-1-5 畫一輛車子

VPython程式碼 0-1-5:畫一輛車子

0-1-6 太陽六芒星

VPython 程式碼0-1-6: 太陽六芒星

0-1-7 簡單版俄羅斯方塊

VPython 程式碼 0-1-7: 簡單版俄羅斯方塊

0-2 七行寫一個動畫

VPython程式碼0-2: 七行寫一個動畫程式

VPython程式碼 0-2-1: 讓他停下來

0-2-2 四球等速

VPython程式碼 0-2-2: 四球等速

0-3 用箭頭畫x,y,z軸

VPython程式碼 0-3: x,y,z axis

0-4 偵錯 debug: 

訓練能力:挫折容忍,自我反思,邏輯

程式設計的Coding入門,必須要減少打字的錯誤,不然程式沒辦法執行。抓到打字錯誤,也是一種挑戰與樂趣。先不要用copy paste,自己動手key in這個短程式,看看能不能畫出正確的圖形?

from visual import *

scene = display(title=’1′, width=800, height=800, x=0, y=0, center=(0,0.06,0), background=(0.5,0.6,0.5))
floor = box(pos=(0,-(0.005)/2,0), length=0.3, height=0.005, width=0.1)

萬一打字好幾次都有錯誤,也不必太氣餒,直接copy paste也是可以。即便在台積電這樣大的科技公司,從廠商提供的Python,改寫成工作所需的程式,也是一項成就與貢獻。請記住:要建立自己在職場上的不可取代性,21世紀,學程式語言可能比學英語更重要。

延伸參考Youtube影片:怎麼樣成為一個高手

1.物體的一維等速運動 [基本架構、while]

訓練能力:迴圈判斷,運動學基本觀念(位置,速度,加速度)

等速度運動,是最簡單的運動。但也是最基礎的運動學三要素,位置、速度、加速度的入門體驗。

VPython程式碼1: 一維等速度

PPT: 中港高瞻物聯網-VPhysics(1)一維等速度運動-201704

測驗-VPhysics(1)

影片-物聯百萬大學堂

Google classroom 課程代碼: 9apgxr

Google classroom作業1

 1-0 簡單等速

VPython程式碼 1-0: 簡單等速 (程式最簡)

1-1黑藍兩車競走

有趣的雙車競走,圖中兩車,哪一台速度快?這個程式,只需要用到等速度運動的程式即可。學程式設計,最重要的,不是寫出很長的程式碼,而是~~”創意”。

VPython程式碼 1-1: 雙車競走

VPython程式碼 1-1:雙車競走(解答版)

1-1-1 雙車競走,改成等加會怎樣?

VPython程式碼 1-1-1: 雙車競走(等加版)

1-2 四角巡航

VPython程式碼 1-2: 四角巡航

1-3 十車,彩色

VPython 1-3: ten colorful cars

1-4作業:

1-4-1 改寫程式(1)將box改成球、(2)變成四球爆炸 (3)變成四cone爆炸,

先不要看解答,想不出來,再參考:將box改成球,四球爆炸,四CONE爆炸參考解答

若參考解答,仿照解答再寫一個程式

2.物體的一維等加速運動 [if]

會了等加速度運動,你便可以稱為動畫師了,因為模擬生活中的運動,就從等加速度運動開始。”你不需要很厲害才開始,但你要開始才會很厲害”。這個程式是球自由落下,再反彈,比較 難。2-0先練習水平等加,與單純的靜止落體

VPython程式碼2: 一維等加速度

PPT: 中港高瞻物聯網-VPhysics(2)自由落體與反彈-201704

Google classroom作業2

2-0 水平一維等加

VPython程式碼 2-0: 簡單一維等加

2-0-1水平面,速度與加速度反向

VPython程式碼 2-0-1: 水平的等加

2-0-2 停止距離=反應距離+煞車距離

開車或騎車時,整個停下來的距離,其實包括兩個部分:

(1)反應距離:從發現前方路況,到開始啟動煞車,此 運動為等速度運動,故反應距離=反應時間(大約0.2秒)*原本車速。

(2)煞車距離:啟動煞車後,依照等加速度,直到車子停下,故煞車距離=原本車速平方/(2*煞車加速度)

VPython程式碼 2-0-2 煞車過程

2-0-3 靜止落體(未反彈)


VPython程式碼 2-0-3 靜止落體

2-1 斜面等加速度:

VPython程式碼2-1斜面等加速度

PPT:中港高瞻物聯網-VPhysics(2-1)斜面-201807

2-2斜面的平拋:

VPython程式碼 2-2 斜面的平拋

2-3 簡單平拋:

VPython程式碼 2-3: 簡單平拋

2-3-1 不同初速的平拋

VPython程式碼 2-3-1: 不同初速的平拋

2-4 知名相對運動:斜拋與靜落

VPython程式碼 2-4: 相對運動

2-5作業:改成四顆球陸續掉下再反彈    不要先偷看參考解答

影片-物聯網狂新聞

3.物體的三維運動 [畫位置時間圖,gcurve]

在物理很重要的函數圖形:x-t圖, v-t圖, a-t圖,都可以畫出來

VPython程式碼3: 三維等加速度

PPT:中港高瞻物聯網-VPhysics(3)三維運動-201704

Google classroom作業3

3-0 簡單斜拋

VPython 程式碼3-0: 簡單斜拋

3-0-1 看見斜拋的速度

VPython程式碼 3-0-1: 看見斜拋的速度

3-0-2 看見斜拋的x等速,y上拋

VPython程式碼3-0-2:看見斜拋的速度變化

3-0-3 簡單函數圖形

VPython 程式碼 3-0-3: 阻尼震盪的函數圖形 

3-0-4 簡單函數圖形 (sin)

VPython程式碼 3-0-4: 簡單函數(sin)

3-0-5 簡單函數 (sin x)

VPython 3-0-5: 簡單函數之sin x

3-1 有無空氣阻力之斜拋比較:

VPython程式碼3-1: 有無空氣阻力之斜拋比較

3-2 運動學著名的斜拋圖:

在高中運動學中,初速相同的斜拋,仰角=45度時,有最大的水平射程;互餘角的水平射程會相同。以前這些知識,你要用背的或算的,現在透過VPython的視覺化,學物理變的很有感!!

VPython程式碼 3-2: 各種角度的斜拋

3-2-1 各種角度斜拋(動量的寫法)

VPython程式碼 3-2-1:各種角度斜拋(動量寫法)

3-3 兩牆反射的平拋:

VPython程式碼 3-3: 兩牆反射的平拋

3-4 箱子內的反射:

VPython程式碼 3-4: 箱內的反射

4.力(向量)的合成 [vector、list、for]

疊加原理superposition theorem,應用向量的加成,在電磁學中,求電場、磁場也可以適用

VPython程式碼4: 力的合成

PPT:中港高瞻物聯網-VPhysics(4)力的合成-201705

Google classroom作業4

5.等速率圓周運動

在高中物理,想要證明法線加速度a=v^2/r,是很複雜而困難的。換個角度想,如果加速度與半徑平方成反比,會怎樣?與速度一次方成正比,會怎樣?

物理老師只能告訴你:軌跡一定不是圓,但是軌跡是什麼?做怎樣的運動?VPython可以告訴你,盡情嘗試吧,因為電腦會幫你畫出來,很快~~

VPython程式碼5: 等速率圓周

PPT:中港高瞻物聯網-VPhysics(5)等速率圓周運動-201707

簡易教案: 簡易教案_等速率圓周運動201707

Google classroom作業5

5-0 簡單圓周

VPython程式碼 5-0: 簡單圓周

5-0-1 用參數式來寫簡單圓周

VPython程式碼 5-0-1: 用參數式來寫簡單圓周

5-0-2 加一個Z軸初速,就成螺旋

高中物理的數學,限制在二維的平面運動,然而卻也讓學生的空間概念不足,常常只具備平面的概念,對於搬家公司疊家具,搬家具;開飛機…等需要空間概念的工作,只能靠直覺或在職訓練。有了電腦的3D立體功能,讓空間概念,比照平面概念,一樣可以用”15行程式碼”,便寫出來!

VPython程式碼 5-0-2: 螺旋

5-1 鉛直圓周(單擺):

單擺,在物理界是知名運動,即便是用算的,也不太容易”體驗”箇中變化的原理,VPython可以幫你算出,你想要得到的各種物理量,動手試試看吧

VPython程式碼5-1: 鉛直圓周(單擺)

PPT:中港高瞻物聯網-VPhysics(5-1)鉛直圓周單擺運動-201807

5-2 單擺+釘子

知名的力學能守恆實驗,用程式模擬,讓結果看得到,有趣的挑戰題

VPython程式碼 5-2: 單擺+釘子 [難題挑戰]

5-3 圓錐擺(錐動擺):

在水平面,等速率圓周運動的圓錐擺,其實,只要用單擺的程式碼,加上”適當”的初速度便可得到。從程式碼中,不只學到資訊科技,更可以印證物理

VPython程式碼 5-3 圓錐擺

5-3-1 圓錐擺變成複擺 (+vy)

VPython程式碼 5-3-1: 圓錐擺變成複擺

5-3-2 正向力的圓錐擺

VPython 程式碼 5-3-2: 正向力的圓錐擺

5-4 知名物理問題:雙星互繞

第一種寫法:運動學。雙星互繞,位置;速度;加速度與質量成反比反向,不再是冷冰冰的物理公式,從本程式可以”看得到”

VPython程式碼 5-4: 雙星互繞

5-4-1 雙星互繞第二種寫法:動力學,重力當作向心力

VPython程式碼 5-4-1:雙星互繞第二種寫法

5-5 知名物理問題:三星互繞

VPython程式碼 5-5: 三星互繞

5-5-1 四星互繞

VPython程式碼 5-5-1: 四星互繞

5-5-2 四星互繞 (3D)

空間概念的實例,讓四球互繞,變程式兩垂直面上的雙星互繞

VPython程式碼 5-5-2: 四星互繞 (3D)

5-5-3 六星互繞

VPython 程式碼 5-5-3: 六星互繞

5-5-4 六球互繞 (3D)

空間概念範例系列,六球分別在x, y, z軸互繞

VPython程式碼 5-5-4: 六球互繞 (3D)

5-6 知名物理問題:複擺之角動量守恆

VPython程式碼 5-6: 複擺之角動量守恆

6.虎克定律和簡諧運動

簡諧運動Simple Harmonic Motion是高中物理最困難的運動,卻也是量子力學模擬複雜系統,如晶格震盪Lattice vibration等,高階物理的基本題型。萬丈高樓平地起,擠身物理高手,就從簡諧運動開始

VPython程式碼6: 虎克與簡諧

PPT:中港高瞻物聯網-VPhysics(6)簡諧運動-201707

Google classroom作業6

6-0 雙球簡諧

VPython程式碼 6-0: 雙球簡諧

6-1 鉛直簡諧:

鉛直簡諧的力學能守恆,包含:動能+重力位能+彈力位能,是力學最難算的題型,從這個模擬程式,讓這些計算,都變成體驗的經驗值,輕輕鬆鬆,練成神功~~

VPython程式碼6-1: 鉛直簡諧

PPT:中港高瞻物聯網-VPhysics(6-1)鉛直簡諧運動-201807

6-1-0 倒立的鉛直簡諧

VPython程式碼 6-1-0: 倒立的鉛直簡諧

6-1-1 鉛直簡諧的速度與加速度

VPython程式碼 6-1-1: 鉛直簡諧的速度與加速度

6-1-2 雙球鉛直簡諧,SHM週期和哪些變數有關?

VPython程式碼 6-1-2: 雙球鉛直簡諧

6-1-3 鉛直簡諧與彈簧波之專題 slinky

VPython程式碼 6-1-3: slinky

6-2 雙質點簡諧:

質心,真的不會動嗎?

VPython程式碼 6-2: 雙質點簡諧

7.動量 [dictionary]

VPython程式碼7: 動量守恆

PPT:中港高瞻物聯網-VPhysics(7)動量,運動慣性-201707

Google classroom 作業7

7-0 單純滾動:

VPython程式碼 7-0: 單純滾動

8.彈性碰撞 [tuple、function]

彈性碰撞,是進入工程力學重要的基礎,透過本程式,完全心領神會

VPython程式碼8: 正向彈碰

PPT:中港高瞻物聯網-VPhysics(8)彈性碰撞-201707

Google classroom 作業8

8-0 兩種一維彈碰:

VPython程式碼 8-0: 兩種一維彈碰

8-1 鉛直彈碰:兩球鉛直放置,上面為小質量,自由釋放後,會如何?

有趣的物理實作,把網球放在籃球上,一起釋放,這樣看似複雜的問題,程式也寫的出來,而且,不長

VPython程式碼 8-1: 鉛直彈碰

PPT:中港高瞻物聯網-VPhysics(8-1)鉛直彈性碰撞-201807

8-2 斜向彈碰:

二維彈碰很複雜?花式撞球的顆星,如何實踐?先看看本程式,再下定論吧

VPython程式碼 8-2: 斜向彈碰

PPT:中港高瞻物聯網-VPhysics(8-2)二維彈性碰撞-201807

8-3 牛頓擺:

VPython程式碼 8-3: 牛頓擺

9.行星公轉 [class]

牛頓當年,為何從一介書生,爆紅於物理界,成為執牛耳的大師?證明出克卜勒定律,讓當時的幾位學院派教授大老們懾服,是很重要的原因

VPython程式碼9: 行星公轉

PPT:中港高瞻物聯網-VPhysics(9)行星公轉-201707

Google classroom作業9

9-0 簡單重力:

VPython程式碼 9-0: 簡單重力

9-1 陀螺轉動:

好玩的程式,就不多說,自己慢慢體會

VPython程式碼 9-1: 陀螺

PPT:中港高瞻物聯網-VPhysics(9-1)陀螺-201807

9-2 地球自轉:

VPython程式碼 9-2: 地球自轉

9-2-0 公轉與自轉

VPython程式碼 9-2-0: 公轉與自轉

9-3 哈雷彗星:

哈雷彗星的週期是76年,以前是用克卜勒第三定律算出來,現在,你還可以用”看見”的方式知道這個數據喔~~

VPython程式碼 9-3: 哈雷彗星

9-3-1 克卜勒第一定率律:橢圓軌道

VPython程式碼 9-3-1: 橢圓軌道

9-4 同步衛星與極軸衛星:

VPython程式碼 9-4: 同步衛星與極軸衛星

9-5 轉動與進動:

VPython程式碼 9-5: 轉動與進動

9-6 飛輪之角動量守恆:

VPython程式碼 9-6:飛輪之角動量守恆

10.熱力學: 

嘆為觀止,不想用拙劣的言詞污染畫面的美麗

VPython程式碼 10:理想氣體

10-1 壓縮氣體:

VPython程式碼 10-1 壓縮氣體

10-2 晶格:

VPython程式碼: 10-2: 晶格

11.光學:

11-1 凹面鏡平行光束聚焦:

VPython程式碼 11-1:凹面鏡平行光束聚焦

11-2 凹面鏡成像:

VPython程式碼 11-2 凹面鏡成像

11-3 都卜勒效應:

原程式碼參考於網路

VPython程式碼 11-3: 都卜勒效應

11-4 RGB and HSV:

VPython程式碼 11-4: 三原色與透明度

11-4-1 RGB 三原色座標

VPython程式碼 11-4-1: RGB三原色座標

11-5 波的反射:

VPython程式碼 11-5: 波的反射

12.電磁學:

12-1 電力線:

VPython程式碼12-1: 電力線

12-2 磁力線:

VPython程式碼 12-2: 磁力線

12-3 電達:

VPython程式碼 12-3: 馬達

12-4 帶電粒子在磁場中運動:

VPython程式碼 12-4: 帶電粒子在磁場中運動

12-5 電磁波

VPython程式碼 12-5: 電磁波

12-6 波耳氫原子模型

VPython程式碼 12-6: 波耳氫原子模型

12-6-1 氦原子(Z=2)

VPython程式碼 12-6-1: 氦原子

12-6-2 鋰原子 (Z=3)

VPython程式碼 12-6-2: 鋰原子

12-6-3: 鈹原子(Z=4)

VPython程式碼 12-6-3: 鈹原子

12-6-4 氖原子Z=10

VPython程式碼 12-6-4: Z=10

13.專題製作:模擬書本的三種轉軸轉動

課程目標:國中生很喜歡轉課本,可以常轉課本的人大概都知道,課本有三個轉軸,其中兩個才可以穩定轉動,如果以最長的邊轉動,很快就進入不穩定的轉動。

物理觀念:在剛體轉動中,如果轉軸固定,則可維持穩定轉動。因此我們必須用以上所學技巧去模擬剛體。解構問題,簡化問題,規劃變成可研究步驟,執行偵錯,是本專題的四大步驟。

13-0 從雙質點簡諧出發

VPython程式碼 13-0: 雙質點簡諧

13-0-1 另一種出發程式: 雙球簡諧

VPython 程式碼 13-0-1: 雙球簡諧

13-1 第一種:穩定轉動

VPython程式碼 13-1:穩定轉動

13-2 第二種:穩定轉動

VPython程式碼 13-2:穩定轉動

13-3 第三種:不穩定轉動

VPython程式碼 13-3:不穩定轉動 

14.跨領域:

14-1 數學幾何:VMath:

VPython程式碼 14-1: VMath

14-2 找出共有幾塊

VPython程式碼: 14-2三維矩陣

14-3 三視圖練習

14-3-1 簡單的立體圖,請畫出三視圖

VPython程式碼 14-3-1 簡單的立體圖

14-3-2 簡單的立體圖,請畫出三視圖

VPython程式碼 14-3-2 簡單立體圖(2)

15. 成為專家的第一步:讀VPython手冊

這張圖片的 alt 屬性值為空,它的檔案名稱為 1_axes.gif

16.專題製作

OK Go @ VPhython

1.觀看 OK Go MV YOUTUBE “This Too Shall Pass”

2.找出有幾種連動裝置

3.用VPython寫出模擬程式