Jump to content
  • Advertisement
Sign in to follow this  
assainator

Physics collision response

This topic is 2646 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone,

We are making a basic 3D Physics Engine for our final project on our school, and we obviously need a collision module.

The situation:
Two objects (they can be assumed to be point masses) of different masses collide in 3D space. Both masses and initial 3D velocities are given. What we need to get out of this is both final 3D velocities, i.e. after the collision. Both conservation of energy and conservation of momentum apply.

Basically, we have this incomplete system of equations (I tried using latex images from http://www.codecogs.com/latex/eqneditor.php but they weren't excepted when posting):
m(1)*a + m(2)*d = m(1)*k + m(2)*n
m(1)*b + m(2)*e = m(1)*l + m(2)*o
m(1)*c + m(2)*f = m(1)*m + m(2)*p
m(1)*(a^2 + b^2 + c^2) + m(2)*(d^2 + e^2 + f^2) = m(1)*(k^2 + l^2 + m^2) + m(2)*(n^2 + o^2 + p^2)

Here, we have object one with a mass of m(1) and an initial velocity of (a,b,c) colliding with object two, with a mass of m(2) and an initial velocity of (d,e,f). After the (perfectly elastic!) collision, object one has a velocity of (k,l,m) and object two has a velocity of (n,o,p)

But we have a problem with this system, once we solve the system analytically (it can't be solved numerically, it would be useless for the eventual programming) we arrive at a final equation of '0 = 0'.

We have also tried working out the system of equations for 2D space but we've hit the same problem there also.

We're still exploring other possibilities:
Solve 1D space, move to 2D, move to 3D
We've read a various articles that make assumptions that we can't (one of the two objects is static)
Someone suggested we look into using polar coordinates.

Our question is:
What is the best approach? The one we're currently working on (with the system of equations for 3D space), one of the three mentioned possibilities or something else?

Thanks in advance for any help.

Share this post


Link to post
Share on other sites
Advertisement
You additionally need a "collision direction" (usually the normal of the "colliding surface"). You then only have to resolve the collision along that normal direction which reduces the whole thing to a 1d problem by projecting the velocities on said normal.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!