如何制定终止追加的条件?

How to make a condition to terminate appending?

我正在编写一个代码来绘制 Python 中不同 theta 值的几个射弹轨迹。

theta = np.arange(np.pi/6, np.pi/3)
t = np.linspace(0,2,num=100)
while y0>=0:
    for i in theta:
        x = []
        y = []
        for k in t:
                x0= v_0*np.cos(i)*k
                y0= v_0*np.sin(i)*k - 1/2*g*(k**2)
                x.append(x0)
                x.append(y0)

在形成数组并放入射弹的必要条件后,我使用了一个while循环将终止指令放入程序中。我想,我错过了一个关键点。谢谢!

我认为您希望终止条件位于最内层循环中。见下文,其中我还定义了几个缺失的常量(v_0g)并将一个 x 固定为 y。同时打印结果

theta = np.arange(np.pi/6, np.pi/3)
t = np.linspace(0,2,num=100)
v_0 = 1
g=10

for i in theta:
    x = []
    y = []
    for k in t:
        x0= v_0*np.cos(i)*k
        y0= v_0*np.sin(i)*k - 1/2*g*(k**2)
        x.append(x0)
        y.append(y0)
        if y0 < 0: # the main change here. Stop looping when y_0 below zero
            break
    print(f'theta:{i}')
    print(f'x:{x}')    
    print(f'y:{y}')

生产

theta:0.5235987755982988
x:[0.0, 0.017495462702715934, 0.03499092540543187, 0.052486388108147805, 0.06998185081086374, 0.08747731351357968]
y:[0.0, 0.008060401999795939, 0.012039587797163551, 0.011937557392102841, 0.007754310784613805, -0.0005101520253035577]

绘制它(y vs x),看起来很合理

还值得注意的是,你对 theta = np.arange(np.pi/6, np.pi/3) 的定义看起来很奇怪,你想在这里实现什么?