大家好,我是Python进阶。前言前几天有个叫[-berry]的粉丝问了一个关于自由落体时产生的抛物线的问题,如下图。当物体以初速度v水平抛出时,其运动轨迹为抛物线,抛物线被模拟绘制。有高中物理知识的我们肯定可以轻松实现,但是今天要用Python来实现,稍微有点难度。一、思路其实解决问题的关键在于两点。一种是基于加速度公式,通过Python获取x和y对应的点值;另一种是映射这些点集。这是一个方法的例子。小编想象一定还有其他的方法,欢迎大家在评论区提意见。2.分析我们需要定义一个列表来存储物体的坐标值,其中总高度可以自己自定义,然后水平位置和垂直高度位置可以通过相关公式计算出来,将每次得到的计算值点集追加到链表后,调用绘图函数绘制抛物线。具体实现如下。3.具体实现直接上传代码,如下图:#coding:utf-8frommatplotlibimportpyplotaspltdefpwx(v,h):yx=[]#Definealist#物体位于距高度g=9.850米的点height=5#这是每次运行5米的常量hh=5*v#totalheightforiinrange(h):y=heightheight=y+5x=int(v*(2*y*(1/9.8))**0.5)yx.append((hh,x))hh-=5returnyxdefhuaxian(yx):plt.title("抛物线轨迹曲线")plt.xlabel("x")plt.ylabel("y")fory,xinyx:plt.plot(x,y,"*")print(y,x)plt.show()defmain():v=int(input("请输入初始速度v:"))h=int(input("PleaseenterthedrawinglineNumberh:"))yx=pwx(v,h)huaxian(yx)if__name__=="__main__":main()在Pycharm中运行后,输入初始速度为10,后面的数画出的线是10条,程序一启动就会自动运行,如下图:之后matplotlib库会呈现给我们一个完美的抛物线图,如下图:4.总结我是一个高级Python使用河本文针对粉丝提出的问题,针对使用Python绘制自由落体过程中产生的抛物线的问题,给出了具体的实现方案,并成功帮助粉丝解决了问题。
