VPython:每次运行迭代一个函数来创建一条新的曲线

2024-10-01 11:40:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序来寻找以给定的速度发射炮弹的最佳角度,以便在给定的距离内击中目标。在

我有这个代码:

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)。如何使函数在每次迭代该函数时生成一条新曲线?在

(在这个代码片段之外定义了一些变量,程序在概念上运行得很好,只是图形的样子)


Tags: 函数代码pos程序plotpiposition曲线
1条回答
网友
1楼 · 发布于 2024-10-01 11:40:38

添加poscurve作为参数:

def Trajectory(angle,poscurve):
    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。您只需再次调用gcurve来创建一个新对象。在

相关问题 更多 >