首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

原创
作者头像
霍格沃兹测试开发Muller老师
发布2023-02-08 18:27:08
发布2023-02-08 18:27:08
9540
举报

学过高中物理的我们都知道,当我们在一定高度上以一定速度水平抛出一个物体时,物体的运动轨迹实际上就是一条抛物线,那么,我们如何用Python将这个抛物线绘制出来呢。

思路

其实解决问题的关键点就是在于两点。其一是基于加速度公式,通过Python得到对应的x和y的点值;其二是针对这些点集进行作图。这里例举一种方法,肯定还有其他的方法的,也欢迎大家在评论区留言拍砖。

分析

需要定义一个列表,用于存储物体的坐标值,其中总高度我们可以自己自定义,之后水平上的位置和垂直高度的位置都可以通过相关公式进行计算,将每次计算得到的点集追加到列表之后,之后调用作图函数进行绘制抛物线,具体实现如下。

具体实现

直接上代码,如下所示:

代码语言:python
复制
# coding: utf-8
from matplotlib import pyplot as plt

def pwx(v, h):
    yx = []  # 定义一列表
    # 物体从高处位置为点50米的地方
    g = 9.8
    height = 5  # 这个是常量每运行一行为5米
    hh = 5*v  # 总高度
    for i in range(h):
        y = height
        height = y+5
        x = int(v*(2*y*(1/9.8))**0.5)
        yx.append((hh, x))
        hh -= 5
    return yx

def huaxian(yx):
    plt.title("Parabolic trajectory curve") 
    plt.xlabel("x") 
    plt.ylabel("y") 
    for y, x in yx:
        plt.plot(x, y, "*")
        print(y, x)
    plt.show()


def main():
    v = int(input("请输入初速度v:  "))
    h = int(input("请输入绘制行数h:  "))
    yx = pwx(v, h)
    huaxian(yx)


if __name__ == "__main__":
    main()

当在Pycharm中运行之后,输入初速度为10,绘制行数为10之后,程序就会自动跑起来,如下图所示:

在这里插入图片描述
在这里插入图片描述

之后matplotlib库会给我们呈现一个完美的抛物线图,如下图所示:

在这里插入图片描述
在这里插入图片描述

总结

本文只是简单的实现了使用Python绘制自由落体抛物线问题,还有一些不完美的地方,欢迎大家留言拍砖。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路
  • 分析
  • 具体实现
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档