• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
QQ糖_尤尤
博客园    首页    新随笔    联系   管理    订阅  订阅
python铅球飞行的轨迹计算程序
#铅球飞行的轨迹计算程序
from math import pi,sin,cos,radians
def main():
    #输入仿真参数
    angle=eval(input("Enter the lauch angle(in degrees):"))#投掷角度
    vel=eval(input("Enter the initial velocity(in meters?sec):"))#初始速度
    h0=eval(input("Enter the initial height(in meters):"))#初始高度
    time=eval(input("Enter the time interval:"))#判断铅球是否落地的间隔时间

    xpos=0#抛出点x坐标为0
    ypos=0#抛出点y坐标为0
    #抛出角度用radians()函数将输入的度转换为弧度,因为math库中角度值的单位是弧度
    theta=radians(angle)
    xvel=vel*cos(theta)#x轴方向的初始速度
    yvel=vel*sin(theta)#y轴方向的初始速度

#该循环体是在铅球落地之前保持更新它的位置和速度
"""
    当ypos>=0时铅球处于飞行状态,
    这用>=号是即使铅球从地面抛出仍可适用
    当ypos<0时表示铅球已落地
"""
    while ypos>=0:
        xpos=xpos+time*xvel#x坐标位置
        yvel1=yvel-time*9.8#该时间段y轴方向末速度
        ypos=ypos+time*(yvel+yvel1)/2#y坐标位置
        yvel=yvel1#更新铅球在该坐标点时的y轴方向速度
    #循环结束,即铅球落地,用print()输出x轴方向飞行距离
    print("\nistance traveled:(0:0.1f)meters.",format(xpos))
main()

    
    

 

posted on 2020-07-01 15:31  QQ糖_尤尤  阅读(569)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3