I'm trying to calculate velocities (by components - x, y) of two objects (balls) after inelastic, two-dimensional collision.

I've successfully implemented the angle-free formula for elastic two-dimensional collision with two moving objects:

enter image description here

Can someone help me to add the coefficient of restitution in this formula?

... or

Here is a formula for inelastic one-dimensional collision:

enter image description here

It is written that:

For two- and three-dimensional collisions the velocities in these formulas are the components perpendicular to the tangent line/plane at the point of contact.

I kind of imagine what it means but unfortunately I cannot do it alone.

Can someone help me to derive the two-dimensional formula or point me to a place where I can find such?


I was thinking, if "the coefficient of restitution (COR) is the ratio of the final to initial (relative) speed between two objects after they collide", can't we just multiply the final velocities from the elastic formula by the COR?

I just want to know, if I have a given COR (which is the same for the both balls for simplicity) what will be the velocity after the collision.

I'm working on a simulation system, you can see it here: JOS - N-body Simulation System

  • $\begingroup$ If you are working with velocity vectors, the situation is not “angle free”. $\endgroup$
    – R.W. Bird
    Commented Jun 8, 2022 at 16:24
  • $\begingroup$ The situation cannot be angle free (it is two-dimensional after all). The formula (representation) is angle free. $\endgroup$ Commented Jun 10, 2022 at 8:52

4 Answers 4


it's been five months since you asked this question. I'm studying this part and I found this thread, you give me a inspiration to construct the formula for 2D inelastic collision. I don't know whether you're still curious about this question but I'm here to provide you a proof for your assumed formulae. Namely, your assumption is correct. Congrats!

First, we will start by splitting $\vec{v_1}$ and $\vec{v_2}$ into two directions: One is parallel to the force between two objects, called the normal direction, denoted as $\vec{v_{1n}}$ and $\vec{v_{2n}}$; and the other is perpendicular to the former one, so we can denote them as $\vec{v_1}-\vec{v_{1n}}$ and $\vec{v_2}-\vec{v_{2n}}$, called the tangent direction.

Then, on the normal direction, this is a 1D partially inelastic collision, so we can use the formula of 1D inelastic collision: $$ \vec{v_1}^{'} = \vec{v_c} + C_R(\vec{v_c}-\vec{v_1}) $$ ,where $\vec{v_c}$ is the velocity of center of mass. (This is a simplified version for your 1D collision equation and this can be proved by some simple algebra.) Applying our vectors, we got $$ \vec{v_{1n}}^{'} = \vec{v_{cn}} + C_R(\vec{v_{cn}}-\vec{v_{1n}}) $$

On the other hand, the tangent direction has no net forces (frictions are omitted), so the velocity along this direction remains $\vec{v_1}-\vec{v_{1n}}$.

By combining two equations, we got: $$ \begin{aligned} \vec{v_1}^{'} &= \vec{v_{1n}}^{'} + \vec{v_1} - \vec{v_{1n}} \\\\ &= \vec{v_{cn}} + C_R(\vec{v_{cn}}-\vec{v_{1n}}) + \vec{v_1} - \vec{v_{1n}} \\\\ &= \vec{v_1} + (1+C_R)(\vec{v_{cn}} - \vec{v_{1n}}) \\\\ &= \vec{v_1} + (1+C_R)(\frac{ m_1 \vec{v_{1n}}+m_2 \vec{v_{2n}} -m_1 \vec{v_{1n}}-m_2 \vec{v_{1n}}}{m_1+m_2}) \\\\ &= \vec{v_1} + \frac{(1+C_R)m_2}{m_1+m_2} (\vec{v_{2n}}-\vec{v_{1n}}) \end{aligned} $$

The final step is to find out what is $\vec{v_{1n}}$. Because $\vec{v_{1n}}$ are the component of $\vec{v_1}$ parallel to the forces, and the forces are along the line centers, which can be denoted as the direction of $\vec{x_1}-\vec{x_2}$, $\vec{v_{1n}}$ is actually the projection of $\vec{v_1}$ on $\vec{x_1}-\vec{x_2}$. By the equation of projection: $$ proj_{\vec{b}} \vec{a} = \frac{\langle \vec{a},\vec{b} \rangle}{|\vec{b}|^2}\vec{b} $$ The formula can be rewritten as: $$ \vec{v_1}^{'} = \vec{v_1} + \frac{(1+C_R)m_2}{m_1+m_2} \frac{\langle \vec{v_{2}}-\vec{v_{1}}, \vec{x_1}-\vec{x_2} \rangle}{|\vec{x_1}-\vec{x_2}|^2}(\vec{x_1}-\vec{x_2}) $$ or, equivalently, in your notation: $$ \vec{v_1}^{'} = \vec{v_1} - \frac{C_R m_2 + m_2 }{m_1+m_2} \frac{\langle \vec{v_{1}}-\vec{v_{2}}, \vec{x_1}-\vec{x_2} \rangle}{|\vec{x_1}-\vec{x_2}|^2}(\vec{x_1}-\vec{x_2}) $$ (replace $\vec{v_{2}}-\vec{v_{1}}$ with $\vec{v_{1}}-\vec{v_{2}}$ yields a negative sign.)


p.s. the proof of $\vec{v_2}^{'}$ is left as an exercise ;)


you can use those equations

\begin{align*} &m_1\,(\mathbf v_1-\mathbf u_1)=-\lambda\,\mathbf n\\ &m_2\,(\mathbf v_2-\mathbf u_2)=\lambda\,\mathbf n\\ &\left[(\mathbf v_2-\mathbf{v}_1)+\epsilon\,(\mathbf u_2-\mathbf u_1)\right]\cdot\mathbf n=0 \end{align*} you have 3 equations for the 5 unknowns; the 4 components of the vectors $~\mathbf v_i~$ and $~\lambda$


starting with Newton equation immediately after the collision

\begin{align*} &m_1\,\frac{d\mathbf v}{dt}= -F_c\,\mathbf n\quad\Rightarrow\\ &m_1\,\int_{\mathbf u_1}^{\mathbf v_1}=-\int F_c\,\mathbf n\,dt=-\lambda\mathbf{n}\\ &m_1\,(\mathbf v_1-\mathbf u_1)=-\lambda\,\mathbf n \end{align*} the conservation of the energy \begin{align*} &E=\frac{1}{2}\left(m_1\,(\mathbf{v}_1)^2+m_2\,(\mathbf{v}_2)^2- m_1\,(\mathbf{u}_1)^2-m_2\,(\mathbf{u}_2)^2\right)=0\\ &2\,E=\left(m_1\,\left [(\mathbf{v}_1)^2- (\mathbf{u}_1)^2\right] +m_2\,\left[(\mathbf{v}_2)^2- (\mathbf{u}_2)^2\right]\right)=0\\ &2\,E=\left(m_1\,\left [\mathbf{v}_1- \mathbf{u}_1\right]\cdot \left [\mathbf{v}_1+ \mathbf{u}_1\right] +m_2\,\left[\mathbf{v}_2-\mathbf{u}_2\right] \cdot \left[\mathbf{v}_2+\mathbf{u}_2\right]\right)=0\\ &\text{with}\quad \mathbf{v}_1- \mathbf{u}_1=-\frac{\lambda}{m_1}\,\mathbf n \quad, \mathbf{v}_2- \mathbf{u}_2=\frac{\lambda}{m_2}\,\mathbf n\\ &\left[(\mathbf v_2-\mathbf{v}_1)+(\mathbf u_2-\mathbf u_1)\right]\cdot\mathbf n=0 \end{align*} and with the coefficient of restitution $~\epsilon~$ \begin{align*} &\left[(\mathbf v_2-\mathbf{v}_1)+\epsilon\,(\mathbf u_2-\mathbf u_1)\right]\cdot\mathbf n=0 \end{align*}

thus for $~\epsilon=1~$ you obtain the conservation of the energy

the solution


\begin{align*} &\mathbf{v}_1+\frac{\lambda}{m_1}\,\mathbf n=\mathbf u_1\\ &\mathbf{v}_2-\frac{\lambda}{m_2}\,\mathbf n=\mathbf u_2\\ &(\mathbf{v}_1-\mathbf{v}_1)\cdot \mathbf n=-\epsilon\,(\mathbf u_2-\mathbf u_1)\,\cdot\mathbf n \end{align*}

you obtain linear equation system $~\mathbf{A}\mathbf x=\mathbf b~$ with \begin{align*} &\mathbf{A}=\begin{bmatrix} E_2 & 0 & \frac{1}{m_1}\,\mathbf{n} \\ 0 & E_2 & -\frac{1}{m_2}\,\mathbf{n} \\ (\mathbf{n})^T & -(\mathbf{n})^T & 0 \\ \end{bmatrix}_{5\times 5}\quad, \mathbf x=\begin{bmatrix} \mathbf{v}_1 \\ \mathbf{v_2} \\ \lambda \\ \end{bmatrix}\quad, \mathbf b=\begin{bmatrix} \mathbf{u}_1 \\ \mathbf{u}_2 \\ -\epsilon\,(\mathbf u_2-\mathbf u_1)\,\cdot\mathbf n \\ \end{bmatrix} \end{align*}

  • $~\mathbf v_i~$ final after the collision
  • $~\mathbf u_i~$ initial velocities
  • $~\mathbf n~$ unit normal vector
  • $~F_c~$ constraint force towards the normal vector
  • $~\epsilon~$ coefficient of restitution
  • $\begingroup$ Thank you, Eli! Unfortunately I do not understand :/ I don't know what is unit normal vector or force toward it or lambda. I was thinking, if "the coefficient of restitution (COR) is the ratio of the final to initial (relative) speed between two objects after they collide", can't we just multiply the velocities after the collision by the COR? I just want to know, if I have a given COR what will be the velocity after the collision. I'm making a simulation system, you can see it here: github.com/trayanmomkov/jos $\endgroup$ Commented May 16, 2022 at 11:03

The direction of the velocities (in a center of mass system) after a collision in two (or three) dimensions will depend on the shape and size of the colliding objects (and their elastic properties). To use conservation of momentum you will need to know at least one of the final velocities as a vector.

  • $\begingroup$ You are right - I forgot to mention that the objects are balls. Will add that to the question. I have balls velocities at the moment of collision (when their surfaces touch), the coordinates of theirs centres (and radius) and the coefficient of restitution i.e. elastic property, which will be the same for the both balls for simplicity. $\endgroup$ Commented May 16, 2022 at 19:14

I think the two-dimensional inelastic collision formula should be:


The red part is the difference from the two-dimensional elastic collision formula from the question. Here, instead 2*m2, we have CR*m2 + m2 for the first object.


Here is my logic

Having one-dimensional formulas for elastic:


(Where m1 and m2 are the masses, u1 and u2 initial velocities, v1 and v2 final velocities.)

...and inelastic collisions:


(Where CR is the coefficient of restitution (COR) (here a,b are used instead 1,2 to mark the two objects).)

... we notice that the only difference between them is that the mass of the other object is multiplied by the COR.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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