public static Vector2 Rotate(Vector2 p, Vector2 origin, double degrees) { var theta = degrees * DegToRad; var x = Math.Cos(theta) * (p.X - origin.X) - Math.Sin(theta) * (p.Y - origin.Y) + origin.X; var y = Math.Sin(theta) * (p.X - origin.X) + Math.Cos(theta) * (p.Y - origin.Y) + origin.Y; return(new Vector2((float)x, (float)y)); }
public static Vector2 FlipX(Vector2 p, Vector2 origin) { return(new Vector2(origin.X - (p.X - origin.X), p.Y)); }