Older Version Newer Version

cogburn cogburn May 25, 2012

**Ballistic Trajectory Calculator**

Input the initial velocity in m/s and the initial angle in degrees and this program will calculate and display trajectory parameters.

[[code format="lb"]]
'Trajectory Calculator Ver. 1.0
'Scott Ausbrooks
'May, 2012

'This program calculates ballistic trajectories ignoring air resistance.
 nomainwin
 WindowWidth = 900
 WindowHeight = 500

 button #1.button1,"Calculate",[action], UL, 10,30,120,50
 button #1.button2,"Clear",[clear], LL, 10,20,120,50
 button #1.button3,"Exit",[quit],LR,120,60,120,50
 textbox #1.textbox0, 650, 30, 180, 60'velocity
 textbox #1.textbox2, 650, 230, 180, 60'angle
 textbox #1.textbox3, 160, 20, 360, 270'result
 statictext #1.velocity, "Initial Velocity",550,30,100,50
 statictext #1.theta, "Initial Angle",550,230,100,60
 statictext #1.result, "Result",300,300,150,25
 open "Trajectory Parameters" for window as #1
 print #1, "font times_new_roman 14 BOLD"
 print #1.textbox0, "!setfocus"
 print #1, "trapclose [quit]"
 wait
[action]
 print #1.textbox2,"!contents?"
 input #1.textbox2, Theta
 print #1.textbox0,"!contents?"
 input #1.textbox0, Vi

 g = 9.81
 Vy = Vi * sin (Theta/57.29578)
 roundedVy = int(Vy*10^2 +0.5) / 10^2
 Vx = Vi * cos (Theta/57.29578)
 roundedVx = int(Vx*10^2 +0.5) / 10^2
 deltaTmaxh = Vy/g
 roundeddeltaTmaxh = int(deltaTmaxh*10^2 +0.5) / 10^2
 DTtotal = 2*deltaTmaxh
 roundedDTtotal = int(DTtotal*10^2 +0.5) / 10^2
 Altitude = (Vy^2)/(2*g)
 roundedAltitude = int(Altitude*10^2 +0.5) / 10^2
 Range = DTtotal * Vx
 roundedRange = int(Range*10^2 +0.5) / 10^2

 print #1.textbox3, "Velocity in the y direction = " ; roundedVy;" m/s"+ chr$(13) + chr$(10) +"Velocity in the x direction = "; roundedVx; " m/s"+ chr$(13) + chr$(10) +"Time to reach max. altitude = " ;roundeddeltaTmaxh; " sec"+ chr$(13) + chr$(10) +"Total hang time = "; roundedDTtotal; " sec"+ chr$(13) + chr$(10) +"Maximum Altitude = "; roundedAltitude; " m"+ chr$(13) + chr$(10) +"Maximum Range = ";roundedRange; " m"

 wait
[clear]

 print #1.textbox0, ""
 print #1.textbox2, ""
 print #1.textbox3, ""
 print #1.textbox0, "!setfocus"
wait

[quit]
 confirm "Really quit?";answer$
 if answer$ = "no" then wait
 close #1:end


[[code]]