coefficient of restitution ?
Can some one please help me insert the coefficient of restitution (e) into the following code.
The code as is stands is elastic collision only :-
Code:
var dx :Number=cararray[i2].x-cararray[i1].x,
dy :Number=cararray[i2].y-cararray[i1].y,
dist:Number=Math.sqrt(dx*dx+dy*dy);
if (dist<=cardiameter) {
// find the angle between the cars
var angle:Number=Math.atan2(dy,dx),
cosa :Number=Math.cos(angle),
sina :Number=Math.sin(angle),
// find the current linear momentum on each axis for each car
// I think this rotates the coordinate system so that we can
// determine a 2 dimensional collision
var vx1p:Number=cosa*cararray[i1].velx+sina*cararray[i1].vely,
vy1p:Number=cosa*cararray[i1].vely-sina*cararray[i1].velx,
vx2p:Number=cosa*cararray[i2].velx+sina*cararray[i2].vely,
vy2p:Number=cosa*cararray[i2].vely-sina*cararray[i2].velx;
// p = momentum?
// v = velocity?
var p:Number=vx1p*cararray[i1].mass+vx2p*cararray[i2].mass,
v:Number=vx1p-vx2p;
vx1p=(p-cararray[i2].mass*v)/(cararray[i1].mass+cararray[i2].mass);
vx2p=v+vx1p;
// tell each car how fast they're going on each axis
cararray[i1].velx=cosa*vx1p-sina*vy1p;
cararray[i1].vely=cosa*vy1p+sina*vx1p;
cararray[i2].velx=cosa*vx2p-sina*vy2p;
cararray[i2].vely=cosa*vy2p+sina*vx2p;
// Work out the where the cars are colliding along the
// "Line of Action" so that we can project them far enough
// away from each other to no longer intersect
diff=((cardiameter)-dist)/2;
var cosd:Number=cosa*diff,
sind:Number=sina*diff;
// update their positions
cararray[i1].x-=cosd;
cararray[i1].y-=sind;
cararray[i2].x+=cosd;
cararray[i2].y+=sind;
}