Python 将恒定加速度添加到此钟摆代码中 在使用此代码时,如何将恒定加速度作为一个整体添加到这个钟摆?现在的代码描述的是一个钟摆,我该如何修改它来描述一个移动列车中的钟摆(列车有恒定的加速度)?任何帮助都将不胜感激,提前谢谢你。 从数学导入sin,pi 从时间上导入睡眠 从海龟进口* GA=9.80665#重力加速度(米/秒平方) 形式='时间={:6.3f},角度={:6.3f},速度={:6.3f}' def main(): 长度=摆锤的10.0#(米) ngol=-GA/长度#负G/L 总时间=0.0秒 角度=1.0#摆锤的初始角度(弧度) 速度=0.0#初始角速度(弧度/秒) 时间\u步数=0.05#秒 acc=1 当总时间

Python 将恒定加速度添加到此钟摆代码中 在使用此代码时,如何将恒定加速度作为一个整体添加到这个钟摆?现在的代码描述的是一个钟摆,我该如何修改它来描述一个移动列车中的钟摆(列车有恒定的加速度)?任何帮助都将不胜感激,提前谢谢你。 从数学导入sin,pi 从时间上导入睡眠 从海龟进口* GA=9.80665#重力加速度(米/秒平方) 形式='时间={:6.3f},角度={:6.3f},速度={:6.3f}' def main(): 长度=摆锤的10.0#(米) ngol=-GA/长度#负G/L 总时间=0.0秒 角度=1.0#摆锤的初始角度(弧度) 速度=0.0#初始角速度(弧度/秒) 时间\u步数=0.05#秒 acc=1 当总时间,python,performance,acceleration,Python,Performance,Acceleration,对于恒定角加速度w(t): acc=1 当总时间

对于恒定角加速度w(t):

acc=1
当总时间<30.0时:
...
角度+=附件*速度*时间步长
acc+=0.1

这是一篇很好的wikipedia文章,描述了摆锤运动。

在我看来,您只需要为绘图功能指定水平位置(假设您在仅沿水平方向移动的火车上)

def draw(angle, length, horiz_pos):

if speed() != 0: return True
clear()
forward(horiz_pos)
setheading(angle + pi)
pensize(max(round(length), 1))
pendown()
forward(length * 25)
penup()
dot(length * 10)
home()
update()
然后通过传递一个基于速度*time_步长的位置来修改对draw()函数的调用,其中速度在增加(即加速)

acc=1
当总时间<30.0时:
总时间+=时间步长
速度水平+=加速度常数*时间步长
速度+=ngol*sin(角度)*时间步长
pos+=速度水平*时间步长
角度+=速度*时间步长
如果绘制(角度、长度、位置):断开
睡眠(时间步长)

speeed+=
具有恒定加速度(阅读“我缺少了什么”)?您希望加速度是在摆锤当前移动的方向上还是在其他角度,比如向下?对于这个不清楚的问题,我深表歉意。我想让整个系统处于恒定加速度,而不是角加速度。运动列车内的钟摆。正常列车没有恒定加速度。钟摆关节中有多少个自由度?加速度方向与摆锤的初始运动平面相比如何?你喜欢多元微积分吗?我为这个不清楚的问题道歉。我想让整个系统处于恒定加速度,而不是角加速度。在移动的火车里的钟摆。
acc = 1
while total_time < 30.0:
    ...
    angle += acc * speed * time_step
    acc += 0.1
def draw(angle, length, horiz_pos):

if speed() != 0: return True
clear()
forward(horiz_pos)
setheading(angle + pi)
pensize(max(round(length), 1))
pendown()
forward(length * 25)
penup()
dot(length * 10)
home()
update()
acc = 1
while total_time < 30.0:
    total_time += time_step
    speed_horiz += accel_constant * time_step
    speed += ngol * sin(angle) * time_step
    pos += speed_horiz * time_step
    angle += speed * time_step
    if draw(angle, length, pos): break
    sleep(time_step)