Tackle a Runner Like a Super Bowl Player—With Physics!
You are a football player on defense. Some guy on offense just caught the ball and you are the only person that can catch him. You can run a little bit faster than him and both of you are on the 50 yard line. So, how do you catch him? What path should you run? Here are three approaches.
The Math Method
Ok, a couple of assumptions. The wide receiver has the ball and he can run 6.5 m/s. He is completely obsessed with scoring a touchdown. He’s so focused that he runs in a straight line without turning. You can run at a speed of 7.0 m/s but you are 5 meters to the right of him. Both of you accelerate up to maximum speed right away.
Since you have plenty of time to plan your attack, you quickly estimate your opponent’s speed and distance. With that you calculate your optimal angle to intercept him in the shortest distance. So, what angle should you aim for?
Let’s think of both players as having motion in both the x and y direction (with the y-direction towards the end zone). Player one has the ball. He has no motion in the x-direction so that we can express his position as a function of time as:
This assumes that he starts at the origin at time t = 0 seconds and his speed is v2. For player two (I guess that would be you), there is a motion in both the x- and y-directions. I can use the angle θ to find the components of velocity and the equations of motion. Let me say that you start at a position of x0 (which I said would be 5 m).
If you solve these three equations for the point where both have the same x and y at the same time, you get a solution of:
Does this answer make sense? First, what would happen if the offensive guy was faster? There would be no angle you could use to catch him, right? Can you take the inverse sine of a value greater than one? Nope. That’s good. But what’s weird? The solution does not depend on the horizontal separation. Does that mean it doesn’t matter? No—it will take longer to catch him the farther you start—but the angle is the same.
Here is a numerical model of this situation (just click the play button to start it).
It’s on trinket.io so feel free to look at the code and change it to see what happens. Try different starting positions and velocities. Note that this gives an optimal angle of 68.2 degrees and it takes a distance of 12 meters to catch him.
I should point out that this solution does indeed work—but it’s not realistic. You can’t calculate inverse sine functions in your head. You might be pretty good at estimating the angle to run to meet the other guy at the right spot, but you don’t actually calculate anything.
The Aiming Method
Here is another way to catch the receiver—run as fast as you can and always run towards the other player. This means that you would start off with a velocity in the negative x-direction but then as the player moved up you would start aiming up. How far would you need to go to catch him? That’s not such an easy calculation. However, it’s not too difficult to make a numerical model. Before showing you the code, let me include one diagram.
Here is the plan. In each step of my program I am going to calculate the vector from player two to player one (I call this vector r). I will then set the velocity of player one to be equal to a vector in the same direction as r (r-hat is the unit vector) with a magnitude of v2. It’s not too difficult. Here is the code for this run (again, just press the play thingy).
You can see that for the same starting conditions, this one lets the player run much farther before being tackled (31.3 meters vs. 12 meters). It’s an easy way to run since you just aim at the target, but it’s not quite as effective. If a football player runs this way, he shouldn’t be in the NFL.
The Thinking Ahead Method
What if you aim a little bit ahead of the player instead of right at him? We need a plan. Let’s start with a diagram again.
This looks crazy, but let me explain. Here’s how we will do it.
- Calculate the vector distance between the two players.
- Use this distance along with the speed of player 2 to calculate the time it would take for this player to get there (call this time Δt).
- Using the time intervale (Δt) find out how far ahead player 1 would move during this time. I am representing this new postion with a small dot.
- Now use the same dumb aiming method from before but aim at the small dot instead of the player.
- Recalculate every time you move.
The awesome thing is that as the two players get closer, the “aim ahead point” gets closer to the actual player. With this, you shouldn’t miss. Here is the code for this motion.
He caught the runner is just 17.5 meters. That’s not as good as the mathematical method, but much better than the running-like-a-dog-at-a-rabbit method. Feel free to and change the code and make your own model.
So many unanswered questions. Here are a few.
- What if the offensive player decides to turn? Which method would work the best in this case?
- Suppose you are now the guy with the ball running for a touchdown. What should you do? Clearly if a defensive player uses the first math method any little change will make him miss. But what about the other methods? Can you create some running algorithm that will maximize the distance before he catches you? Remember you have to stay in bounds.
- What would change if the two players don’t start at the same yard line? What if the runner starts 5 meters ahead? What if the defensive guy starts ahead?
- What about two defensive players? This is getting pretty close to the velociraptor problem that I never finished (but I will).