I think my English vocabulary is not enough to explain it, but I'll make efforts. #1: When an impact is applied, rotate circle 1 around circle 2 with velocity vectors until the line connecting center of circle 1 with circle 2 overlaps X axis. #2: Swap X components of velocity vectors of 2 circles. #3: Restore #1 to original status.