matplotlib绘图-斜上抛运动

matplotlib是Python中绘制2D图形使用最多的库,可以很轻松的将数据图形化。本文绘制了斜上抛运动,下面是最终的效果。


(菲菲老师教得好,幸不辱命 (? ̄?? ̄??)??° )

  1. 导入所需数据包
    这里的animation.FuncAnimation(fig,update,generate,interval = 5)函数,是用于生成动态图片的。其中fig表示生成的图表对象;generate函数生成数据后传递给update函数更新,这样数据不断更新,图形也不停变化;interval表示时间间隔,设置的值越小,运动速度越快

    1
    
    2
    
    3
    
    from matplotlib import pyplot as plt
    
    from matplotlib import animation	
    
    import math
    
  2. 设置图形窗口参数
    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    7
    
    8
    
    9
    
    10
    
    11
    
    12
    
    13
    
    14
    
    15
    
    16
    
    
    font=FontProperties(fname=r"c:windowsfontssimsun.ttc",size=14)
    
    # 初始化图形窗口
    
    fig = plt.figure()
    
    ax = fig.add_subplot(111)	
    
    ax.set_aspect('equal')
    
    # 设置坐标轴的x,y取值范围
    
    xmin = 0
    
    ymin = 0
    
    ax = plt.axes(xlim = (xmin, xmax), ylim = (ymin, ymax)) 
    
    # 创建一个圆,圆点在(0,0),半径为1
    
    circle = plt.Circle((xmin, ymin), 1)
    
    ax.add_patch(circle)
    
  3. 给定初始参数值
    1
    
    2
    
    3
    
    4
    
    g = 9.8
    
    u = 30	# 斜上抛的初速度
    
    theta = 60	# 与水平方向的夹角θ
    
    theta_radians = math.radians(theta)	# 返回一个角度的弧度值
    
  4. 计算衍生参数

    大专栏  matplotlib绘图-斜上抛运动/table>

    「制作动态效果」

    主要利用前面介绍的animation.FuncAnimation函数。于是我们需要构造generate与update函数,让它动起来~

    generate函数

    1
    
    2
    
    3
    
    4
    
    t_flight= 2*u*math.sin(theta_radians)/g		# 从A点到B点所需时间
    
    t_max = u*math.sin(theta_radians)/g	# 上升到最大高度所需时间
    
    xmax = u*math.cos(theta_radians)*t_flight  # AB两点的距离
    
    ymax = u*math.sin(theta)*t_max - 0.5*g*t_max**2  # 上升的最大高度
    
    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    #产生时间间隔参数(每个数据间隔为0.05),依次传递给updata函数   
    
    def ():
    
    t = 0
    
    while t < t_flight:
    
    t += 0.05
    
    yield t
    

    update函数

    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    #更新时间间隔参数,从而不断改变圆的圆心坐标位置,让其移动 
    
    def update(t):
    
    x = u*math.cos(theta_radians)*t
    
    y = u*math.sin(theta_radians)*t - 0.5*g*t*t
    
    circle.center = x, y
    
    return circle,
    

    打印相关信息

    1
    
    2
    
    3
    
    4
    
    5
    
    def Print():
    
    print (u"初始速度(米/秒):",u)
    
    print (u"发射角度(度)",theta)
    
    print (u"飞行总时间(秒)",t_flight)
    
    print (u"飞行距离(米)",xmax)
    

    动画函数

    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    7
    
    8
    
    9
    
    anim = animation.FuncAnimation(fig, update,generate,interval=10)
    
    # 附加信息
    
    anim= animation.FuncAnimation(fig, update,generate,interval=10)
    
    plt.title(u'导弹发射轨迹',fontproperties=font)
    
    plt.xlabel(u'水平距离(米)',fontproperties=font)
    
    plt.ylabel(u'导弹运行高度(米)',fontproperties=font)
    
    plt.show()
    
    Print()
    

    最后就能看到首页的动态图了 ヾ(?’?`?)??

    原文地址:https://www.cnblogs.com/sanxiandoupi/p/11693241.html

    时间: 2024-10-21 14:03:36

matplotlib绘图-斜上抛运动的相关文章

Javascript摸拟自由落体与上抛运动 说明!

JavaScript 代码 //**************************************** //名称:Javascript摸拟自由落体与上抛运动! //作者:Gloot //邮箱:[email protected] // QQ:345268267 //网站:http://www.cnblogs.com/editor/ //操作:在页面不同地方点几下 //*************************************** var $ = function(el)

canvas 模拟小球上抛运动的物理效果

最近一直想用学的canvas做一个漂亮的小应用,但是,发现事情并不是想的那么简单.比如,游戏的逼真效果,需要自己来coding…… 所以,自己又先做了一个小demo,算是体验一下亲手打造物理引擎的感觉吧.*_* 代码效果预览地址:http://code.w3ctech.com/detail/2524 html: 1 <div class="container"> 2 <canvas id="canvas" style="border:1p

[Unity算法]斜抛运动(变种)

之前的斜抛运动,如果运动到游戏中,显然是太呆板了,那么可以试着加入一些效果,让它看起来更生动一些,类似游戏中的击飞或者掉落效果: 1.在达到最高点的时间点±X的时间段内,会有"减速"效果,形成一种在空中停留的感觉 2.落地后,反弹一次,再落地,就像是与地面发生了碰撞 相关公式: 原文地址:https://www.cnblogs.com/lyh916/p/10415954.html

Python3快速入门(十六)——Matplotlib绘图

Python3快速入门(十六)--Matplotlib绘图 一.Matplotlib简介 1.Matplotlib简介 Matplotlib是 Python 2D-绘图领域使用最广泛的套件,可以简易地将数据图形化,并且提供多样化的输出格式.matplotlib有两个接口,一个是状态机层的接口,通过pyplot模块来进行管理:一个是面向对象的接口,通过pylab模块将所有的功能函数全部导入其单独的命名空间内. 2.Matplotlib安装 使用conda安装如下:conda install mat

matplotlib绘图学习

matplotlib绘图学习 (1)matplotlib安装 下载地址https://pypi.python.org/pypi/matplotlib#downloads 下载windows包matplotlib-2.1.0-cp35-cp35m-win_amd64.whl 安装命令: python -m pip --user matplotlib-2.1.0-cp35-cp35m-win_amd64.whl 检查是否安装成功使用import导入操作,不报错即可 (2)绘制一个简单的折线图 imp

数据分析06 /matplotlib绘图

目录 数据分析06 /matplotlib绘图 1. 绘制线性图:plt.plot() 2. 绘制柱状图:plt.bar() 3. 绘制直方图:plt.hist() 4. 绘制饼状图:pie() 5. 绘制散点图:scatter() 数据分析06 /matplotlib绘图 1. 绘制线性图:plt.plot() 绘制单条线形图 import matplotlib.pyplot as plt import numpy as np x = [1,2,3,4,5] y = [5,4,3,2,1] p

数据分析07 /matplotlib绘图

目录 数据分析07 /matplotlib绘图 1. 绘制线性图:plt.plot() 2. 绘制柱状图:plt.bar() 3. 绘制直方图:plt.hist() 4. 绘制饼状图:pie() 5. 绘制散点图:scatter() 数据分析07 /matplotlib绘图 1. 绘制线性图:plt.plot() 绘制单条线形图 import matplotlib.pyplot as plt import numpy as np x = [1,2,3,4,5] y = [5,4,3,2,1] p

python中,使用matplotlib绘图时,图片上文字无法显示问题。

在使用python过程中,我们往往需要使用matplotlib进行图片的绘制,在绘图过程中,我们有时需要在图片上进行文字的显示,在使用过程中,会出现文字无法显示的问题.如下图: 遇到上述问题我们只需在代码中加入如下语句即可解决: from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei']如下图: 原文地址:https://www.cnblogs.com/Leo-Xia/p/9997408.html

matplotlib绘图总结

本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 类MATLAB API 最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数. from pylab import * from numpy import * x = linspace(0, 5, 10) y = x ** 2 figure() plot(x, y, 'r') xlabel('x') ylabel('y') title('title') 创建子图,选择绘图用的颜色与描点符号