1
我正在創建一個程序來查找以給定速度發射子彈的最佳角度,以便在給定距離處擊中目標。VPython:迭代函數來創建每次運行的新曲線
我有這樣的代碼:
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)
。每次迭代此函數時,如何讓該函數生成一條新曲線?
(有此代碼段之外定義的變量,該方案在概念上正常工作,該圖只是外觀)
目前還不清楚「poscurve」來自哪裏。從我所能看到的,它只是給數據集添加了一個新點(稍後繪製)。要創建每條新曲線,您可以創建一個新的「poscurve」對象,或者保留一個「poscurve」列表,或者添加一條新的曲線/線到現有的圖形/場景 – Oerd
@很抱歉,'poscurve '定義爲'poscurve = gcurve(gdisplay = win,color = color.blue)',問題是我不知道如何每次創建一個新的'gcurve',甚至可以運行相同的函數並且每次都使用不同的變量作爲軌跡? – user2043909