特定の距離でターゲットを攻撃するために、特定の速度で発射体を発射する最適な角度を見つけるプログラムを作成しています。
私はこのコードを持っています:
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)
これを繰り返すと、関数は毎回同じものを使用するため、新しい曲線の最初の点を前の曲線の最後の点に接続します。この関数を反復するたびに新しい曲線を生成するにはどうすればよいですか?
(このコード スニペットの外で変数が定義されています。プログラムは概念的には正常に動作し、グラフがどのように見えるか)