python计算并画出轨迹

import numpy as np
import matplotlib.pyplot as plt

def calBomb(h,v0):
    g=9.8
    tmax=(2*h/g)**0.5
    t=np.linspace(0,tmax,50)
    xt=v0*t
    yt=h-1/2*g*t**2
    return xt,yt
H=[3000,2000]
V0=[200,260]
for h in H:
    for vo in V0:
        xt,yt=calBomb(h,vo)
        plt.plot(xt,yt)

plt.grid('on')
plt.axis([0,8000,0,4000])
plt.show()

  

import numpy as np
import matplotlib.pyplot as plt

def calBomb(h,v0):
    g=9.8
    tmax=(2*h/g)**0.5
    t=np.linspace(0,tmax,50)
    xt=v0*t
    yt=h-1/2*g*t**2
    return xt,yt

H=[3000,2000,1000]
V0=[200,260,230]
for h in H:
    for vo in V0:
        xt,yt=calBomb(h,vo)
        plt.plot(xt,yt)
plt.grid('on')
plt.axis([0,8000,0,4000])
plt.show()

  完整练习题:

# 导入必要的库
import numpy as np  # 用于数值计算
import matplotlib.pyplot as plt  # 用于绘图

# 定义计算炸弹轨迹的函数
# 参数:h - 初始高度,v0 - 初始水平速度
def calBomb(h, v0):
    g = 9.8  # 重力加速度
    tmax = (2 * h / g) ** 0.5  # 计算炸弹落地时间
    t = np.linspace(0, tmax, 50)  # 生成时间序列
    xt = v0 * t  # 计算水平位移
    yt = h - 1 / 2 * g * t ** 2  # 计算垂直位移
    return xt, yt  # 返回水平和垂直位移

# 定义初始高度和速度的列表
H = [3000, 2000, 1000]  # 初始高度
V0 = [200, 260, 230]  # 初始水平速度

# 遍历所有高度和速度组合,计算并绘制轨迹
for h in H:
    for vo in V0:
        xt, yt = calBomb(h, vo)  # 计算轨迹
        plt.plot(xt, yt)  # 绘制轨迹

# 设置图形属性
plt.grid('on')  # 显示网格
plt.axis([0, 8000, 0, 4000])  # 设置坐标轴范围
plt.show()  # 显示图形

  

posted @ 2025-08-07 17:10  华腾智算  阅读(19)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL