选做了教材第2.7题,即根据大气密度的等温 和绝热 变化模型下的阻力来计算加农炮的轨迹,并与无阻力时炮弹的轨迹进行比较。
所有图片对应的初始发射速率都是V0=1500m/s
首图选择将无阻力和其它两种模型大气密度下的结果都绘出,初始夹角为45度,得轨迹图:
Picture 1:
由上图可见,理想情况偏离实际模型很远,为充分显示两种不同模型下轨迹的区别,之后的绘图不再绘出理想曲线而只呈现等温/绝热大气密度模型下的炮弹轨迹。
以下依次为初始角度为40和50度时的曲线,且迭代步数皆为100步:
Picture 2:
Picture 3:
明显在这两个角度下等温落地点比绝热落地点水平距离远不少
单独处理绝热模型(Adiabatic)对应的情况,分不同计算步长(100步,1000步,10000步)得出数据,代入45度附近的几个角度,画图比较其不同:
一,100步迭代:
色带由内向外对应角度依次为43,44,45,46,47,48,49,50,51和52度,迭代计算得出位置数据,用Python画出图
Picture 4:
整体图的落地点不够明显,再绘出落地点细部图:
Picture 5:
可见超过45度,约46度时为落地点最远处。
二,1000步迭代:
色带由内向外对应角度依次为46,47,48,49,50和51度,迭代计算得出位置数据,用Python画出图
Picture 6:
细部图:
Picture 7:
比对落地点细部图,易知出射角为50度左右时水平射程最远。
三,10000步迭代:
色带由内向外对应角度依次为47,48,49,50,51和52度,迭代计算得出位置数据,用Python画出图
Picture 8:
细部图:
Picture 9:
由细部图易知出射角度为50度时为最远水平距离。
总结:
由以上分析及各步长绘图结果得到结论,对于该大气密度模型下炮弹的轨迹,在迭代步数足够的情况下,炮弹所能达到的最远发射距离在出射角约50度时得到,从绘图结果中我们也能看到,对于不同步长得到的同一角度下的落地点也有一点差别,这是由计算精度影响的,当步长越大时越接近理论得到的结果。
Pygame动画:
有关Pygame的尝试,阅读了一些关于Pygame的编程内容,目前无法做出炮弹按轨迹移动打中目标物的动画。后期理解更多以后在做。