public static double CustomBezierEase(double percent, BezierEasePoint[] pts) { int i; var ttl = pts[pts.Length - 1].X; var cur = ttl * percent; for (i = 0; cur > pts[i + 1].X; i++) { } var o = pts[i]; var o2 = pts[i + 1]; percent = (cur - o.X) / (o2.X - o.X); return QuadBezEase(percent, o.Y, o2.Y, o.Y2) / ttl; }
public static PercentHandler CreateCustomBezierEase(BezierEasePoint[] pts) { return p => CustomBezierEase(p, pts); }