Calculating Ball Trajectory in Basketball Simulation Game

In summary, the ball would move horizontally and vertically according to the equation y = y0 + v0yt + (1/2)ayt2, but with the addition of drag, which would cause the ball to move in the opposite direction.
  • #1
Quasker
2
0
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!
 
Physics news on Phys.org
  • #2
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/s2. 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/s2. 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 = y0 + v0yt + (1/2)ayt2

where y0 is the initial vertical position (at t = 0), v0y is the initial vertical speed, and ay is the acceleration in the vertical direction. In this particular case, we have ay = -g, with the minus sign arising because the acceleration is downward. So the equation becomes:

y = y0 + v0yt - (1/2)gt2

The most general equation for the horizontal position, x, vs. time of the object under a constant acceleration would be:

x = x0 + v0xt + (1/2)axt2

HOWEVER, in this case, we have ax = 0. There is no horizontal component to the acceleration, because there are no forces acting in the x-direction, 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 = x0 + vxt​

where vx = v0x is the (constant) horizontal speed.

If v is the total speed, then the horizontal and vertical components are given, respectively, by the equations

vx = vcosθ
vy = 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 vx is constant, and vy varies with time in a well-defined 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 = v0 + 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:

vy = v0y - gt​
 
  • #3
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
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
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.
 

1. What factors are involved in calculating ball trajectory in a basketball simulation game?

The main factors involved in calculating ball trajectory in a basketball simulation game are the initial velocity of the ball, the angle at which it is released, and the force of gravity. Other factors such as air resistance and spin on the ball may also be taken into account depending on the complexity of the simulation.

2. How is the initial velocity of the ball determined?

The initial velocity of the ball is typically determined by the player's input, such as the speed and direction of their shot. In more advanced simulations, it may also be influenced by factors such as the player's strength or fatigue.

3. What role does angle of release play in calculating ball trajectory?

The angle of release is a crucial factor in determining the trajectory of a basketball in a simulation game. A higher release angle will result in a higher arc and longer flight time, while a lower angle will result in a flatter trajectory with a shorter flight time. This angle can be adjusted by the player depending on the situation.

4. How does the force of gravity affect the ball's trajectory?

The force of gravity is a constant downward force that affects the trajectory of the ball. As the ball is in the air, it will gradually lose vertical velocity and begin to fall due to the force of gravity. This must be taken into account when calculating the ball's trajectory, as it will determine the peak height and distance of the ball's flight.

5. Can air resistance and spin on the ball be accurately simulated in a basketball simulation game?

In most cases, air resistance and spin on the ball can be accurately simulated in a basketball simulation game. However, the level of complexity in the simulation will determine how accurately these factors are taken into account. In more advanced simulations, factors such as air density and turbulence can also be considered when calculating the ball's trajectory.

Similar threads

  • Mechanics
Replies
6
Views
909
Replies
1
Views
789
Replies
5
Views
2K
  • Classical Physics
Replies
20
Views
999
  • Introductory Physics Homework Help
2
Replies
38
Views
1K
Replies
4
Views
7K
  • Mechanics
Replies
2
Views
1K
Replies
25
Views
2K
Replies
2
Views
759
Back
Top