動量
-
比較有相同動量但不同質量的物體速度的快慢
Web VPython 3.2 # 匯入視覺化套件 from vpython import * # 1. 參數設定 #物質密度 單位: kg/m**3 density_stucco = 400.0 density_metal = 900.0 density_earth = 2600.0 #球半徑 0.05m size = 0.05 #地板長 L = 1.00 #時間間隔 dt = 0.001 #體積 V = (4/3)*pi*(size)**3 #初始動量 kg*m/s P = 0.1 # 2. 畫面設定 scene = canvas(width=800, height=800, background=vector(0.5,0.6,0.5)) bottom = box(pos=vector(0,-size,0), length=2*L, height=0.001, width=2) wall = box(pos=vector(L,-size/2,0), length=0.01, height=size, width=2) # 3. 球的設定 ball_stucco = sphere(pos=vector(-L,0,-0.40), radius=size, texture=textures.stucco) ball_metal = sphere(pos=vector(-L,0,0), radius=size, texture=textures.metal) ball_earth = sphere(pos=vector(-L,0,0.40), radius=size, texture=textures.earth) #質量 ball_stucco.m = V*density_stucco ball_metal.m = V*density_metal ball_earth.m = V*density_earth #速度 ball_stucco.v = P / ball_stucco.m ball_metal.v = P / ball_metal.m ball_earth.v = P / ball_earth.m # 4. 運動 while True: rate(1000) ball_stucco.pos.x = ball_stucco.pos.x + ball_stucco.v * dt ball_stucco.rotate(axis=vector(0,0,1), angle = -ball_stucco.v*dt/size) if ball_stucco.pos.x >= L-size: ball_stucco.v = 0 ball_metal.pos.x = ball_metal.pos.x + ball_metal.v * dt ball_metal.rotate(axis=vector(0,0,1), angle = -ball_metal.v*dt/size) if ball_metal.pos.x >= L-size: ball_metal.v = 0 ball_earth.pos.x = ball_earth.pos.x + ball_earth.v * dt ball_earth.rotate(axis=vector(0,0,1), angle = -ball_earth.v*dt/size) if ball_earth.pos.x >= L-size: ball_earth.v = 0
【作業】
請修改上述程式碼,使用串列(list)與迴圈(for loop)畫出三顆滾動的球。