我正在创建一个程序来找到以给定速度发射弹丸的最佳角度,以便击中给定距离之外的目标。
我有这个代码:
def Trajectory(angle):
position = vector(0,0,0)
poscurve.plot(pos=position)
velocity = v0 * vector(cos(angle*pi/180), sin(angle*pi/180), 0)
while (position.y > 0) or (velocity.y > 0):
dx = velocity * dt # update dx and dv
dv = g * dt
position = position + dx # apply the updates to velocity and position
velocity = velocity + dv
poscurve.plot(pos=position)
return position
问题是,这个程序以不同的角度多次重复这个功能。当它重复时,它将新曲线的第一个点连接到前一条曲线的最后一个点,因为该函数poscurve.plot(pos=position)
每次都使用相同的。如何使函数在每次迭代此函数时生成一条新曲线?
(在此代码段之外定义了一些变量,程序在概念上工作正常,只是图表的外观)