等速率圓周運動
-
在上一個課程「速度視覺化」的案例中,我們使用的範例是「自由落體」,這個課程換成是「等速率圓周運動」。
Web VPython 3.2 # 匯入視覺化套件 from vpython import * # 1. 畫面設定 # 畫布 scene = canvas(center=vector(0, 0.3, 0.2), background=vector(0.5,0.6,0.5)) # 桌面 table = cylinder(pos=vector(0,-0.03,0), axis=vector(0,-0.01,0), radius=0.7, texture = textures.wood) # 圓心 center = cylinder(pos=vector(0, -0.03, 0), axis=vector(0, 0.03, 0), radius = 0.007) # 球 ball = sphere(pos=vector(-0.5,0,0), radius=0.03, color=color.blue) # 2. 設定參數、初始值 ball.v = vector(0, 0, 0.5) r = mag(ball.pos) print("速度 = ", mag(ball.v)) print("時間週期 = ", 2*pi*r/ mag(ball.v)) # 時間間隔 dt = 0.001 # 3. 運動部分 while True: rate(1000) # 更新球的資料 ball.a = - (mag(ball.v)**2 / r) * (ball.pos/r) ball.v = ball.v + ball.a*dt ball.pos = ball.pos + ball.v*dt
執行結果
課堂作業:
請使用上個課程「自由落體」單元學到的「箭頭」作法,在等速率運動的「圓球」上面,加上顯示「速度」與「加速度」的箭頭,可以讓我們更清楚地了解「圓球」的變化,如下圖:
作業提示:
# 速度箭頭 v_arrow= arrow(pos=ball.pos, axis=ball.pos, shaftwidth=0.01) # 加速度箭頭 a_arrow= arrow(pos=ball.pos, axis=ball.pos, shaftwidth=0.01) # 3. 運動部分 while True: rate(1000) # 更新速度箭頭資料 v_arrow.pos = ball.pos v_arrow.axis = ball. v # 更新速度箭頭資料 a_arrow.pos = ball.pos a_arrow.axis = ball. a