static PointF Lerp(PointF p1, PointF p2, float amount) { return new PointF { X = p1.X + (p2.X - p1.X)*amount, Y = p1.Y + (p2.Y - p1.Y)*amount }; }