
#1
Aug1512, 07:36 PM

P: 2

So I'm making a little basketball simulation game and I need a good way to calculate the path of a ball. I want to do this on a frame by frame basis where one frame lasts about 50 milliseconds. Each frame will store values for the state of the ball and then after applying some math, those values will be changed for the next frame.
So right now I have the horizontal and vertical positions, velocity, mass, and angle. I can add more variables if needed, these are just the first ones to come to my mind. I think I can calculate the horizontal and vertical positions with something like this: horizontal : newX = oldX + (oldVelocity * cos(angle)) vertical : newY = oldY + (oldVelocity * sin(angle)) If that is not a good way to do it, then let me know, it's just what I thought of with my limited physics knowledge. I have no clue though how gravity and drag would factor in. I think the angle of the ball and the velocity should change from frame to frame, I just don't know how. So, assuming a constant gravity, what would be a good way to make these calculations? Thanks! 



#2
Aug1612, 01:00 AM

Emeritus
Sci Advisor
PF Gold
P: 5,198

Welcome to PF Quasker!
You can assume that gravity is a constant force that acts vertically downward. It causes an acceleration g, where g = 9.81 m/s^{2}. In case you don't know, acceleration is just the rate of change (increase or decrease) of velocity, so this number is saying that gravity causes the downward velocity of the object to increase by 9.81 meters per second (m/s) every second. So the acceleration is the change in velocity divided by the time, which is 9.81 (m/s)/s = m/s^{2}. Let's say the vertical position is denoted using the coordinate y. In the case of constant acceleration, the general equation for position vs. time is: y = y_{0} + v_{0y}t + (1/2)a_{y}t^{2} where y_{0} is the initial vertical position (at t = 0), v_{0y} is the initial vertical speed, and a_{y} is the acceleration in the vertical direction. In this particular case, we have a_{y} = g, with the minus sign arising because the acceleration is downward. So the equation becomes: y = y_{0} + v_{0y}t  (1/2)gt^{2} The most general equation for the horizontal position, x, vs. time of the object under a constant acceleration would be: x = x_{0} + v_{0x}t + (1/2)a_{x}t^{2} HOWEVER, in this case, we have a_{x} = 0. There is no horizontal component to the acceleration, because there are no forces acting in the xdirection, and Newton's Second Law says that a net force is required to cause an acceleration. Therefore, in this case, the equation reduces to: x = x_{0} + v_{x}t where v_{x} = v_{0x} is the (constant) horizontal speed. If v is the total speed, then the horizontal and vertical components are given, respectively, by the equations v_{x} = vcosθ v_{y} = vsinθ where θ is the angle of the ball's velocity vector, measured from the horizontal. Now, you mentioned that you knew the *initial* value for θ, but not the subsequent values. Well, you can figure them out if you need to, because v_{x} is constant, and v_{y} varies with time in a welldefined way. Remember that acceleration is just the rate of change of velocity. Therefore, the change in velocity is going to be the rate of change with time, multiplied by the total time elapsed. E.g. if my acceleration is a rate of1 m/s per second, then to figure out how much my speed would have increased (starting from 0) after 3 seconds, I'd just multiply the rate by the time interval: 1 (m/s)/s * 3 s = 3 m/s. This makes perfect sense. Since my speed increases by 1 m/s every second, after three seconds it will have gotten up to 3 m/s (assuming I started at 0). Stating this mathematically: v = v_{0} + at The velocity at time t is the initial velocity plus the change in velocity, which, as I just explained, is the acceleration times the time interval. So, for our vertical velocity, this would become: v_{y} = v_{0y}  gt




#3
Aug1612, 01:40 AM

Homework
Sci Advisor
HW Helper
Thanks ∞
P: 9,159

You also mentioned drag, which cepheid didn't cover. You can take the drag as a force proportional to the square of the speed, and acting in direct opposition to the direction of travel. This is makes things a bit more complicated, because now you can't treat the horizontal and vertical components of velocity as independent.




#4
Aug1612, 01:46 PM

Thanks
P: 5,505

Trajectory of a Ball
Drag does not just make it a bit more complicated, it changes the game completely. Taking drag into account requires solving numerically the drag equation from frame to frame. Not to mention that an accurate drag coefficient must be known.
A realistic model would also need to take the spin of the ball into account, wind, etc. And we end up with the problem of external ballistics. 



#5
Aug1612, 03:15 PM

P: 2

Thanks for the replies, very informative. After reading a couple of the replies, I think it will probably be best to use a simplified model that doesn't consider air resistance, ball spin, etc. I guess the only external force would be gravity.



Register to reply 
Related Discussions  
Ball trajectory variation  Introductory Physics Homework  0  
Trajectory of a Base Ball  Introductory Physics Homework  2  
Playground ball trajectory.  Introductory Physics Homework  3  
spinning ball and its trajectory  General Physics  6  
Trajectory of curving ball  Introductory Physics Homework  2 