Norm = cObject.position - this.position; Norm.Normalize(); Norm1 = (Vector3.Dot(velocity, -Norm)) * -Norm; Norm2 = (Vector3.Dot(cObject.velocity, Norm)) * Norm; if (Norm1.X == 0 && Norm1.Y == 0) Norm1 = Norm2; else if (Norm2.X == 0 && Norm2.Y == 0) Norm2 = Norm1; Tang1 = Norm1 - velocity; Tang2 = Norm2 - cObject.velocity;