rendered paste body#define ED 1void ball_collision (poolBall *one, poolball *two){ float d, ax, ay; d = distance (one->x, two->x, one->y, two->y); ax = (two->x-one->x)/d; ay = (two->y-one->y)/d; one->va = (one->vx*ax+one->vy*ay); one->vb = (-one->vx*ay+one->vy*ax); two->va = (two->vx*ax+two->vy*ay); two->vb = (-two->vx*ay+two->vy*ax); one->vap = one->va+(1+ED)*(two->va-one->va)/(1+one->mass/two->mass); two->vap = two->va+(1+ED)*(one->va-two->va)/(1+two->mass/one->mass); one->vx = one->vap*ax-one->vb*ay; one->vy = one->vap*ay+one->vb*ax; two->vx = two->vap*ax-two->vb*ay; two->vy = two->vap*ay+two->vb*ax;}