python基础练习三

2007黄有才 2007黄有才 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

第三题

已知某型迫击炮发射初速度为300m/s, 炮弹飞行过程中无动力,不考虑空气阻力,重力加速度取9.8m2/s。在不同的角度下,炮弹落地的时间与飞行的位置都不一样。本题通过编程绘制角度分别为[30, 45, 60, 75]度时的炸弹轨迹。其中函数calBombT\frace(theta)计算炮弹飞行过程中n个位置坐标,时间样本为均匀分配。你的任务是补充完整该程序代码。

计算逻辑示例如下(编程时不需要取整):

当角度为为30度时,炸弹空中飞行时间约为30.6s,

若取5个均匀的时间样本,分别约为[ 0, 7.6, 15.3, 22.9, 30.6 ]

则对应的x坐标则为[0,1988, 3976, 5964, 7953]

对应的y坐标则为[ 0, 860,1147, 860, 0 ]

代码实现

def calBombTrace(theta):
    v0, g, n = 300, 9.8, 30
    theta_d = np.radians(theta)     #因numpy中cos、sin的输入为弧度值,故先将theta从度转换为弧度
    v0_x = v0*np.cos(theta_d)       #炮弹水平初速度
    v0_y = v0*np.sin(theta_d)       #炮弹垂直初速度
    tmax = 2*v0_y/g                 #落地时间,即v0_y*t-0.5gtt=0的解
    t = np.linspace(0, tmax, n)     #n个时刻
    xt = v0_x*t                     #n个时刻的横坐标
    yt = v0_y*t-1/2*g*t**2          #n个时刻的纵坐标
    return xt, yt

for theta in [30, 45, 60, 75]:
    # 调用函数,得到theta返回的值,并存储到xt与yt变量
    xt,yt=calBombTrace(theta)
    plt.plot(xt, yt)

plt.grid('on')
plt.axis([0, 10000, 0, 5000])
plt.savefig('./src/step4/res/轨迹.png')

plt.close()
print([round(x,6) for x in xt])
print([round(x,6) for x in yt])

 

...全文

相关推荐

matplotlibTrain (1).html python-matplotlib的一些小练习——东北大学大数据班数据挖掘实训Python基础三

python-matplotlib的一些小练习——东北大学大数据班数据挖掘实训Python基础三 题目:练习使用matplotlib 包中的方法绘图。 1.通过pandas包将数据scmd_CalculationData.csv读入,从中取出winddirection和windspeed1这2个字段,绘制风速与风向的散点图(风向为横轴,风速为y轴)。(要求:有标题(风速与风向的函数)、横纵坐标的标题、设置网格,保存图片文件命名为1风速与风向的函数.png) 2.通过pandas包将数据scmd_CalculationData.csv读入,从中取出windspeed1、power_max、power_min、power和power_dev这5个字段,绘制功率特性的散点图(风速为x轴,其他为y轴)。(要求:有标题(功率特性散点图)、横纵坐标的标题、图例、设置网格,保存图片文件命名为2功率特性散点图.png) 3.通过pandas包将数据bz_df_wt.csv读入,从中取出bin_bz_fs<=20的数据,然后取出实际风速bin_bz_fs和实际功率bin_bz_power;再读入bzglqx.csv取出保证风速fs和保证功率gl,绘制功率曲线的对比图(一张图中绘制,横轴为风速,纵轴为功率)。(要求:有标题(实测与设计功率曲线对比)、横纵坐标的标题、图例、设置网格,保存图片文件命名为3实测与设计功率曲线对比.png)

爱做梦的鱼

Python编程 基础练习(三)

python编程 基础训练 1. 根据输入的日期,计算该日期是这一年的第几天 2. 猜数游戏 3.输入一组数到列表nums,请找到列表中任意两个元素相加能够等于9的元素,形成一个元组,使其小数在前大数在后,如:(2,7),(1,8)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出 4. 求输入一组数据的平均值、方差、中位数 5. 打印九九乘法表 6. 求方程的解

叶庭云

Python程序设计基础教程思考与练习三.pdf

思考与练习三 1. 在例 3-2 里, 把判定条件 ch=='y' or ch=='Y'写成 ch = 'y' or ch = 'Y'对吗? 2.假定初始时有 x=5、y=8,有程序段 如下: if (y == 8): if (x == 5): print ("@ @ @ @ @\n"); else: printf ("# # # # #\n"); printf ("$ $ $ $ $\n"); printf ("& & & & &\n"); 编写者忘记了应该在什么地方缩进和回 退位置。 在不准移动语句上下顺序的前提下, 调整语句的缩进和回退位置,使上述程序段 输出以下 3 种不同的结果: (1)@ @ @ @ @ $ $ $ $ $ & & & & & (2)@ @ @ @ @ (3)@ @ @ @ @ & & & & & 3.利用 for 循环和函数 range(),编写 一个程序,求数值 1~10 的和。 4.利用 for 循环和函数 range(),编写 一个程序,求 2~100(包含 100)的所有 偶数之和(注意函数 range()里对终值 stop 的设置) 。 5.在例

是空空呀

python基础练习题100.pdf

python基础练习题100

星空道尘

python练习题100题.zip_KBL_Python 练习册_Python初学习题_python习题_python计算题

这是我初学Python时的练习,有题目,有代码,适合初学者练习

A Pei
评论
收藏 已收藏
分享
返回顶部
2007黄有才
42python 124 成员 589 内容