Educoder Python入门-绘制炸弹轨迹

第1关:绘制一个坐标点

1.某轰炸机在h=3km的高空以200m/s的速度水平匀速飞行,到达A点是投下一枚无动力炸弹,不考虑空气阻力,重力加速度g的值取9.8,我们可以通过如下公式得到炸弹在任意时候的位置。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt     #导入matplotlib.pyplot
h, v0, g = 3000, 200, 9.8
for t in [10, 15, 20, 24]:
    xt = v0*t
    yt = h-1/2*g*t**2
    plt.ylim((0, 3000))
    plt.xlim((0, 5000))
    plt.grid('on')
    ######## begin ############
    # 请使用plot函数,绘制一个坐标点
    plt.plot(xt, yt, 'ro')
    ######## end ##############
    plt.savefig('./student result/%s秒后.png' % str(t))
    plt.close()

第2关:绘制n个坐标点

2.某轰炸机在h=3km的高空以200m/s的速度水平匀速飞行,到达A点是投下一枚无动力炸弹,不考虑空气阻力,重力加速度g的值取9.8,我们可以通过如下公式得到炸弹在任意时候的位置。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt     #导入matplotlib.pyplot
h, v0, g = 3000, 200, 9.8
t, n = 0, 30        #n为要绘制的坐标点数量,假设为30
tmax = (2*h/g)**0.5
delta = tmax/(n-1)  #delta为相邻两时刻之间的间隔
while t<=tmax:      #t从0变到tmax,每次加delta
    ###### begin ##########
    # 请在此填写表达式,计算时间为t时,x轴与y轴的位置,并命名为xt与yt
    xt = v0*t
    yt = h-1/2*g*t**2
    ######### end ############
    plt.plot(xt,yt,'ro')
    t = t+delta
plt.grid('on')
plt.axis([0, 5000, 0, h])
plt.savefig('./student result2/%s个点.png' % str(n))
plt.close()

你可能感兴趣的:(python,python)