首页 > 编程语言 > 详细

python计算铅球飞行距离的模块化程序设计

时间:2020-07-03 10:38:03      阅读:80      评论:0      收藏:0      [点我收藏+]
#计算铅球飞行距离的模块化程序设计
 #输入仿真参数

from math import pi,sin,cos,radians
def main():
    angle,vel,h0,time=getinputs()#调用getinputs()获取仿真参数
    xpos,ypos=0,h0#初始化铅球抛出点x,y坐标
    xvel,yvel=getxycomponents(vel,angle)#调用getxycomponents()获取铅球抛出点x,y轴方向速度
    while ypos>=0:#判断铅球是否落地
        xpos,ypos,yvel=updateposition(time,xpos,ypos,xvel,yvel)#调用updateposition()更新铅球坐标坐置及y轴方向飞行速度
    print("\n铅球飞行距离是:{0:0.1f}米.".format(xpos))
def getinputs():
    #输入仿真参数 
    angle=eval(input("请输入投掷角度(度):"))
    vel=eval(input("请输入投掷速度(米/秒:"))
    h0=eval(input("请输入投掷的初始高度(米):"))
    time=eval(input("请输入间隔判断时间(秒):"))#每隔这个时间就判断一次铅球是否落地
    return angle,vel,h0,time#返回参数值
def getxycomponents(vel,angle):
    theta=radians(angle)#度转换为弧度
    xvel=vel*cos(theta)
    yvel=vel*sin(theta)
    return xvel,yvel#返回x轴,y轴方向的速度
def updateposition(time,xpos,ypos,xvel,yvel):
    xpos=xpos+xvel*time
    yvel1=yvel-time*9.8
    ypos=ypos+time*(yvel+yvel1)/2
    yvel=yvel1
    return xpos,ypos,yvel
main()

 

python计算铅球飞行距离的模块化程序设计

原文:https://www.cnblogs.com/ylzchs/p/13228249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!