Gravity Fun at TestTubeGames.com: [ForceG: -2,Qual: 1,Zoom: 1,xSet: 1,ySet: -3], [x0: -10,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: 100], [x0: 10,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: -100]
But I did some research and I found the reason for why it actually doesn't break conservation of momentum!
So, the law goes as follows:
(source: http://www.physicsclassroom.com/class/m ... /u4l2b.cfm )For a collision occurring between object 1 and object 2 in an isolated system, the total momentum of the two objects before the collision is equal to the total momentum of the two objects after the collision. That is, the momentum lost by object 1 is equal to the momentum gained by object 2.
So, momentum, or kinetic energy can be expressed as F = mv. What the sentence up there just said was basically that the overall kinetic energy of a closed system stays constant. So this means that m1 * v1 + m2 * v2 = vi
m1 and v1 being the mass and velocity of object 1, m2 and v2 being the same for object to, and vi being the initial velocity.
So let's try a little bit of a test with two positive masses. Take the following scenario:
Gravity Fun at TestTubeGames.com: [ForceG: -2,Qual: 1,Zoom: 1,xSet: 1,ySet: -3], [x0: -100,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: 100], [x0: 100,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: 100]
So we got 2 objects with mass 100, one at 100,0 and the other one at -100,0, both with 0 momentum.
At T=0 we got:
100 * 0 + 100 * 0 = 0 or 0 = 0. This holds true!
After one iteration(where G=1), let's say T=1 we get:
100 * 0.25 - 100 * 0.25 = 0
Yep, this checks out.
Now what happens if we add a negative mass into the mix?
Gravity Fun at TestTubeGames.com: [ForceG: -2,Qual: 1,Zoom: 1,xSet: 1,ySet: -3], [x0: -100,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: 100], [x0: 100,y0: 0,vx: 0,vy: 0,t0: 0,who: 2,m: -100]
100 * 0 + (-100) * 0 = 0 or 0 = 0.
Yep, nothing wrong here. But, after one iteration...
100 * 0.25 + -100 * 0.25 = 0 or 25 + (-25) = 0 which means 0 = 0
Yep, this checks out too.
So what I mean is, these DON'T break conservation of momentum! Physics is happy again.