Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Parabolic Motion

  1. Jul 13, 2012 #1
    I've been trying to make an online game using the rules of physics. If I'm not mistaken this flash game uses Newtonian physics by generating a vertical parabola to simulate gravity. I also realize that acceleration in the x direction can occur. Are there any other sort of kinematic principles I should take into account? Also I know that gravity on Earth is about 10. What is it for a typical game such as this? I guess it would be measured in pixels/sec^2. Any input is much appreciated.

    Thanks so much
     
  2. jcsd
  3. Jul 13, 2012 #2

    haruspex

    User Avatar
    Science Advisor
    Homework Helper
    Gold Member
    2016 Award

    Since you will need to generate the position at each point in the arc, you don't have to have exact solutions for the path of motion; you can simulate the differential equations. This means you can easily take into account air resistance, and maybe a wind blowing. The downside is there may be a small accumulation of error.
    (Back in the early days of PCs, there was a free game written in Basic that involved gorillas throwing exploding bananas at each other across a city skyline. There was something weird about the trajectories, so I looked at the code. Horizontal wind had been implemented as some kind of lateral gravity, accelerating without limit!)
     
  4. Jul 14, 2012 #3

    mfb

    User Avatar
    2016 Award

    Staff: Mentor

    I would guess pixels/(timestep)^2 where the timestep is something like 1/50s. Using those timesteps, you can calculate the velocity and the position for each step. The parabola does not need any representation in the code, it is just the result of the step-by-step calculation.

    With the option to accelerate horizontal and vertical in flight ;).
     
  5. Jul 14, 2012 #4
    So if y = 5t - 5t^2 the differential equation is dy/dt = 5 - 10t. How do I account for air resistance and wind blowing. The horizontal wind error sounds like something that definitely might happen if I approach the problem this way. Is there a better way maybe? Because Robot Unicorn Attack and other similar games are not glitchy at all.

    Yeah I now understand this. I thought you need an explicit equation for position, but now I see that the parabola is just a result of the step by step calculation.
     
  6. Jul 14, 2012 #5

    mfb

    User Avatar
    2016 Award

    Staff: Mentor

    Calculate the second derivative: [itex]a=\frac{d^2y}{dt^2}=-10[/itex]
    You can add all sorts of forces to this acceleration. Air resistance would be proportional to (v-vwind)^2 for reasonable velocities, for example.

    Now, for each time step, keep track of horizontal velocity v and position y. If the object jumps, set its initial velocity v0 to some value, corresponding to the "jumping capability" of the object. The position y0 is simply the location where the jump happens. Now, the iterative formulas can be written as:

    [itex]v_i=v_{i-1}+a_{i} dt[/itex]
    [itex]y_i=y_{i-1}+v_{i} dt[/itex]

    Those formula violate energy conservation, but they are a very simple way to calculate the position and velocity. The Runge–Kutta methods give a smaller error.
     
  7. Jul 15, 2012 #6
    This is great thanks. I didn't realize that air resistance is proportional to (v-vwind)^2. For some reason I was under the impression that air resistance is proportional to k*v where k is a constant. Would you recommend 4th order Runge-Kutta to solve these iterations. In what way do those formulas violate energy conservation? This is very interesting to me.
     
  8. Jul 17, 2012 #7

    mfb

    User Avatar
    2016 Award

    Staff: Mentor

    They violate energy conservation with finite time-steps. As an example, drop an object from a height of 30m with 0m/s initial velocity, and approximate g=10m/s^2. As time step, I use 1s (very large!). The pairs (velocity,position) are then given by:

    (0,30)
    (10,30-10=20)
    (20,20-20=0) -> hits the floor with 20m/s.
    An object with mass 1kg would have an initial potential energy of mgh=300J, and a final kinetic energy of 1/2 mv^2 = 200J. The difference went in the bad approximations in the time steps.

    A better way to calculate the displacement would be to take the average of the old and the new velocity:
    [itex]y_i=y_{i-1}+\frac{v_i+v_{i-1}}{2}dt[/itex]

    Same situation again:
    (0,30)
    (10,25)
    (20,10) -> now, 20m/s corresponds to a drop of 20m, which is consistent with energy conservation.
    (30,-15) -> well, hit the floor somewhere in between.

    If the acceleration is not constant, this will lead to deviations again, but for constant acceleration it works.
     
  9. Jul 17, 2012 #8

    A.T.

    User Avatar
    Science Advisor
    Gold Member

    If the acceleration is not constant, you can do the same with acceleration values: average the old and the new acceleration before you compute the new velocity. This will improve the result, but still lead to deviations if the changes in acceleration are non-linear.
     
  10. Jul 17, 2012 #9
    A recursive trajectory calculation is fairly easy to setup using the time gradiant and the acceleration of gravity. Depending on initial velocities and the drag coefficient of the object you can very accurately compute the path.
    I did this for an external ballistics program in C back when DOS was the operating system of choice. I believe I still have it somewhere but right now everything is being packed up for our move to a new home.

    Paul
     
  11. Jul 17, 2012 #10
    you probably got somebody who figured out you could plug x-y data in there computer game instead of math calculating equations.

    the inverted parabola works for the sum of forces (x-y-z) throughout a fall with the opposite end of the foci representing the sum of horizontal forces exerted on the body at all times
     
    Last edited: Jul 17, 2012
  12. Jul 20, 2012 #11
    Now I think I get it. With a large time step energy is not conserved. If the time step is decreased, and approaches 0 seconds then is energy conservation maintained?
     
  13. Jul 21, 2012 #12

    mfb

    User Avatar
    2016 Award

    Staff: Mentor

    In the limit dt->0, energy is conserved with all (reasonable) formulas, right.
     
  14. Jul 23, 2012 #13
    lol for using robot unicorn attack as an example of a game that uses parabolic motion. One question I have is how do you calculate the initial angle of the projectile? I think is the inverse tangent of initial velocity in the y direction divided by velocity in the x direction. How does acceleration affect the initial jump angle and the range of the projectile.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Parabolic Motion
  1. Parabolic reflection (Replies: 0)

Loading...