public static Vector2 Reflect(Vector2 vector, Vector2 normal) { Vector2 result = Zero; float sub = 2*Dot(vector, normal); result.X = vector.X - sub*normal.X; result.Y = vector.Y - sub*normal.Y; return result; }