第2堂課
我們可以用第一堂課學到的知識,來撰寫一個物體一維等速運動的物理現象模擬程式。
物理觀念:
位移(公尺) = 速度(公尺/秒) * 時間(秒)
位置 = 位置 + 位移
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # -*- coding: utf8 -*-
# 匯入視覺化套件
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公尺所需的時間。
本單元課程自2018.7.5日起已被瀏覽 568 次