最终效果:
完整运动代码:
# -*- coding: utf-8 -*-
from vpython import *
L = 10
theta = pi/6
base = box(pos=vector(0, 0, 0), size=vector(2, 0.5, 1), color=color.white)
ball = sphere(pos=vector(L*sin(theta), -L*cos(theta), 0), radius=0.25, color=color.white)
line = cylinder(pos=base.pos, axis=(ball.pos-base.pos), radius=0.05, color=color.white)
vel = 0
dt = 0.005
t = 0
while t < 100:
rate(100)
acc = - 10 / L * sin(theta)
vel = vel + acc * dt
theta = theta + vel * 180/pi * dt
ball.pos = vector(L*sin(theta), -L*cos(theta), 0)
line.axis = ball.pos - vector(0, 0, 0)
t = t + dt