stole the math from stack overflow was not bothered to test for collinear and parallel so it will return "None" also drag the balls