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手冊
16.專題製作
OK Go @ VPhython
1.觀看 OK Go MV YOUTUBE “This Too Shall Pass”
2.找出有幾種連動裝置
3.用VPython寫出模擬程式