Elastic Collision#
Welcome to the Elastic Collision Simulator#
Have you ever wondered what happens when two balls bump into each other, like in a game of pool or marbles? This simulator lets you explore that in a fun, interactive way! It shows collisions between two balls that are “elastic,” meaning they bounce off each other without losing any energy—like perfectly springy rubber balls. No real balls get squished or slowed down permanently.
This app is great for beginners. You don’t need to know physics to start playing around. We’ll explain everything step by step, including the simple math behind it. The simulator has a screen where balls move and collide, plus controls to change things like how heavy the balls are or how fast they go. There’s also a graph that shows what’s happening over time, like a live chart of the action.
By using this simulator, you can see how the balls’ speeds and directions change after they hit. It follows two big rules from physics: the total “momentum” (a mix of mass and speed) stays the same, and the total “kinetic energy” (energy from motion) stays the same too. We’ll explain these rules and show the math without any fancy calculus—just basic algebra.
Getting Started: How to Use the Simulator#
If you’ve never used this app before, don’t worry! It’s easy. When you open it, you’ll see a few main parts:
The Main Screen (Simulation Area)
This is like a Code Playground for the balls. You’ll see two colorful balls on a flat surface. They can move left, right, up, or down. In the corner, there’s a little display showing “FPS” (frames per second)—that’s just a number telling you how smoothly the animation is running, like how fast a video plays.
Controls for the Balls
On the side or bottom, there’s a panel where you can tweak things:
Mass (m): This is how heavy each ball is. A bigger number means a heavier ball. Try setting one ball light (like 1) and the other heavy (like 10) to see what happens!
Radius: This changes the size of the ball. Bigger radius means a bigger ball, but it doesn’t affect the bounce much—just how they look.
Initial Velocity (\(v_x\) and \(v_y\)): Velocity is just a fancy word for speed and direction. v_x is how fast it’s going left or right (positive for right, negative for left). v_y is up or down (positive for up, negative for down). Start with simple values, like Ball 1 with v_x = 5 and Ball 2 with v_x = 0 (not moving).
Buttons to Control the Action
Start
: Click this to make the balls move and possibly collide.Pause
: Stops everything so you can look closely or change settings.Reset
: Puts everything back to the beginning, clears the graph, and resets the balls.
The Graph for Seeing Data
Below or next to the screen, there’s a graph like a line chart. It shows how things change over time. Use the dropdown menus to pick what to plot:
On the x-axis (bottom): Usually time, but you can choose other things.
On the y-axis (side): Pick stuff like kinetic energy, momentum, or how many collisions have happened.
For example, choose “Time” vs. “Total Kinetic Energy” to see if the energy stays the same after a bounce.
Hint
Try a simple setup first: Make both balls the same mass, one moving right toward the other that’s still. Start the simulation and watch the graph. The lines should stay flat for total momentum and energy, meaning nothing is lost!
The Physics Behind the Bounces#
Let’s break down the science in simple terms. We’ll start with the basics and build up using easy math. Imagine two balls colliding head-on (straight at each other) in one direction, like on a straight line. Later, we’ll touch on how this works in two directions (like on a table).
What is Momentum?
Momentum is like the “oomph” of a moving object. It’s calculated as mass times velocity: \(p = m \times v\). For two balls, the total momentum is just adding theirs up. In an elastic collision, the total momentum before the crash equals the total after. That’s the law of conservation of momentum.
What is Kinetic Energy?
Kinetic energy is the energy from moving. The formula is \(KE = \frac{1}{2} \times m \times v^2\) (half mass times speed squared). Again, in elastic collisions, the total kinetic energy before equals after. That’s conservation of kinetic energy.
Now, let’s use these to figure out the speeds after a collision. We’ll use algebra to solve it step by step. Say we have Ball 1 (mass \(m_1\), initial speed \(v_{1i}\)) and Ball 2 (mass \(m_2\), initial speed \(v_{2i}\)). After, their speeds are \(v_{1f}\) and \(v_{2f}\).
Step 1: Write the Momentum Equation
Total momentum before = total after:
Rearrange to group terms:
Step 2: Write the Kinetic Energy Equation
Total KE before = total after:
Drop the 1/2 from everywhere (it cancels out):
Rearrange:
Factor using \((a^2 - b^2) = (a - b)(a + b)\):
Step 3: Solve by Dividing Equations
Divide Equation 2 by Equation 1 (assuming the differences aren’t zero, meaning they do collide):
This simplifies to:
Rearrange:
Step 4: Substitute Back into Momentum
Plug this into Equation 1:
Simplify inside:
Expand and group terms with \(v_{1f}\) on one side:
Solve for \(v_{1f}\):
Swap 1 and 2 for \(v_{2f}\):
Note
For collisions not head-on (in 2D), we break speeds into parts: one along the line where they hit, and one sideways. We use the above formulas only on the hitting part. The sideways parts stay the same. Then, we combine them back to get the new directions.
What You Can Learn from This Simulator#
This app isn’t just for fun—it’s a great way to learn physics without a textbook:
See the Rules in Action: Watch how total momentum and kinetic energy don’t change, no matter what.
Play with Changes: Try different masses or speeds. What if one ball is super heavy? Or if they’re going at angles?
Look at Real Data: The graph shows numbers changing live, helping you connect the math to what you see.
Wrapping Up#
The Elastic Collision Simulator is a simple yet powerful way to dive into the world of bounces and physics. Whether you’re new to all this or just curious, tweak the settings, hit Start
, and watch the magic happen. Experiment, observe the graphs, and see the math come alive. Happy simulating!