一維等速運動
-
我們可以用第一堂課學到的知識,來撰寫一個物體一維等速運動的物理現象模擬程式。
- 物理觀念:
位移(公尺) = 速度(公尺/秒) * 時間(秒)
位置 = 位置 + 位移
Web VPython 3.2 # 匯入視覺化套件 from vpython import * #產生一個寬400像素,高400像素的3度空間以進行繪圖 scene = canvas(width=400, height=400,center=vector(0,0.06,0)) #產生一個扁長形方塊,當做是地板 floor = box(pos=vector(0,0,0), length=0.3, height=0.005, width=0.1) #產生一個正立方物體 cube = box(pos=vector(0, 0.05/2, 0), length=0.05, height=0.05, width=0.05) #---------- # 參數設定 #---------- # 速度 v = 0.02 #物體速度 = 0.02 (公尺/秒) #時間間隔 dt = 0.001 #畫面更新的時間間隔,單位為秒 #經過時間 t = 0 #模擬所經過的時間,單位為秒,初始值為0 #------------- #一維等速運動 #------------- while cube.pos.x < 0.1: rate(1000) # 位置 = 位置 + 速度 * 時間 cube.pos.x = cube.pos.x + v * dt t = t + dt print(t)
執行結果:
- 課堂練習
- 改變 v 的數值,並用你的手錶或碼錶計時,看看到木塊到 0.10m 時,所花的時間是否等於 0.10 / v。
- 設定 v 的數值,並改變程式碼中 while (cube.pos.x < 0.10): 中的數值 0.10 為你想要的數值,執行程式,看看結果,有什麼不同。
- 更改 display()中,參數 x、y 與 center 的值中的數值,看發生了什麼差異。
- 改變 rate()括號中的值,並用你的手錶或碼錶計時,看看到模擬停止時,不同數值在實際時間所造成的差異。
- 將這一行程式碼 cube = box(pos=vector(0, 0.05/2, 0), length=0.05, height=0.05, width=0.05)改為cube = box(pos=vector(0, 0.05/2, 0), length=0.05, height=0.05, width=0.05, texture= textures.wood)後,執行程式,你會發現木塊上有了木質條紋。
- 課堂作業
修改模擬程式,計算以速度0.03公尺/秒向右移動0.1公尺,再向左移動0.2公尺所需的時間。
執行結果: