1
$\begingroup$

I'm mainly focused on Computer Science, but I am trying to create one simulation where I need to resolve collisions between points with mass and absolute velocities.

Imagine having:

$point = <v_x, v_y, m>$
$v_x$ is velocity in x axis,
$v_y$ velocity in y axis
$m$ is mass

we have two points that we know, that they are colliding with each other.

How can we measure the velocities of particles after collision?

I have almost no background in physics but I'm highly interested to learn something so please, I would also love to have some materials from whose I could deduct formula.

$\endgroup$
4
  • $\begingroup$ Too little information. Is this elastic or inelastic collision or something in-between, i.e. coefficient of restitution is between $(0;1)$ ? Easier case would be to compute results for elastic collision where momentum and kinetic energy is both conserved. But still for that you need to have ball radius, because you would have to compute dot product of relative speed and ball(s) center relative displacement vector. For points collision that doesn't make sense at all. $\endgroup$ Commented Sep 22, 2020 at 13:46
  • 1
    $\begingroup$ Does this answer your question? Calculate force between rotating objects $\endgroup$ Commented Sep 23, 2020 at 0:00
  • $\begingroup$ Read cs.cmu.edu/~baraff/sigcourse/notesd1.pdf and cs.cmu.edu/~baraff/sigcourse/notesd2.pdf $\endgroup$ Commented Sep 23, 2020 at 0:01
  • $\begingroup$ @JohnAlexiou not really, because my objects have no rotation, because they are points $\endgroup$ Commented Sep 23, 2020 at 16:07

2 Answers 2

2
$\begingroup$

It is not possible to determine the result of a collision between point particles in 2D or 3D. This is because the directions in which they rebound off each other depends on the orientation of the line or surface along which they make contact, relative to their previous directions of motion.

This situation is familiar in billiards and snooker. A stationary ball can be made to move in a variety of directions depending on whether it is struck head on or to one side by the cue ball. For each ball the change in velocity is always directed perpendicular to the common surface at which they make contact.

However point particles have no structure so no such line or surface of contact can be defined.

In 1D the point particles are constrained to move along a straight line and can only rebound back along the direction from which they came. In 2D or 3D there is no similar restriction. In fact there is a more fundamental dilemma : whether the point particles have collided at all. Since they have zero size they almost never occupy the same place at the same time, and therefore do not touch.

Practically you could assign a small but finite radius to each particle. Otherwise the precision of your computer determines the size of particles.

The simplest solution is to assign at random a line along which contact is made (see Note), after it has been decided that there has been a collision - ie when the particles are within one diameter of each other. Each particle retains its initial component of velocity parallel to the contact line. The final components of velocity perpendicular to this line are calculated from the laws of conservation of momentum and kinetic energy as is usual for 1D collisions. For elastic collisions (in which no kinetic energy is lost) the relative speed of separation (along the perpendicular) must equal the relative speed of approach, regardless of the relative masses.

A more sophisticated solution is to model the particles as circles. The common tangent (or chord) along which these circles touch (or overlap) defines the line of contact. Allowing some overlap reduces computation and looks more realistic.


Note :

For point particles a realistic collision can be simulated without considering the spherical geometry of colliding billiard balls, and without avoiding overlap.

$\endgroup$
1
  • 1
    $\begingroup$ thank you, i see that there is problem when i assume, that radius is 0 so if i will assign some $r != 0$ then i will solve my problem with above methods. thank you $\endgroup$ Commented Sep 23, 2020 at 16:09
1
$\begingroup$

If you are looking for a reference, I would advise you to read this well written paragraph on wikipedia:

https://en.wikipedia.org/wiki/Elastic_collision

It will tell you how to compute the values after collision. The method follows a physical principle called conservation of momentum and how it applies to elastic collisions.

In physics, you can use several conservation laws to compute the state of a system:

  • conservation of momentum
  • conservation of angular momentum
  • conservation of energy

If you continue your studies in physics, you will learn that those conservations laws are derived from special properties of a tool used to describe the state of a physical system: the hamiltonian of the system. But I would recommend to dig in this notion, only after you will get a good understanding of the conservation laws.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.