Re: Projectile motion
- To: mathgroup at smc.vnet.net
- Subject: [mg79892] Re: Projectile motion
- From: ben <benjamin.friedrich at gmail.com>
- Date: Wed, 8 Aug 2007 04:49:31 -0400 (EDT)
- References: <f9912q$c4n$1@smc.vnet.net>
Dear Mike I haven't worked through your example in detail, but maybe this snippet of code already gets you going sol = NDSolve[{x'[t] == 1, x[0] == 0}, x[t], {t, 0, 2}, StoppingTest :> {x[t] > 1}][[1]]; tmax = (x[t] /. sol)[[0, 1, 1, 2]] Bye Ben On 7 Aug., 07:48, Mike <mj... at comcast.net> wrote: > All: > > I'd like to be able to stop the "disk" when it arrives at xmax. Can anyone give me a hint? > > Thx, > > Mike > > Manipulate[ > Module[{eqns, soln, x, y, t}, > eqns = {x'[t] == v Cos[Theta], x[0] == 0, > y'[t] == -g t + v Sin[Theta], y[0] == 0}; > soln = Flatten[NDSolve[eqns, {x, y}, {t, 0, p}]]; > With[{d = x[p] /. soln, h = y[p] /. soln}, > Graphics[{Blue, Disk[{d, h}, .2]}, > PlotRange -> {{-.5, 12}, {-.5, 6}}, Frame -> True, > PlotLabel -> > TableForm[{"Theta =" <> > ToString[NumberForm[Theta 180/Pi , {2, 0}]], > "vx =" <> > ToString[NumberForm[Chop[N[v Cos[Theta]]] , {2, 1}]], > "vy =" <> > ToString[NumberForm[Chop[N[v Sin[Theta]]] , {2, 1}]], > "xmax =" <> > ToString[NumberForm[N[(v^2 Sin[2 Theta])/g] , {3, 2}]], > "ymax =" <> > ToString[ > NumberForm[N[(v Sin[Theta])^2/(2 g)] , {3, 2}]]}]]]], {{v, > 5, "Initial Velocity"}, 1, > 10}, {{g, 9.8, "Gravitational Constant"}, 0, > 30}, {{Theta, Pi/4 , "Theta"}, 0, Pi/ > 2}, {{p, 0, "Animate"}, 0, 2, ControlType -> Trigger}]