cx'(t) = a-x(t) cy'(x) = b-y(t)
You need to solve these two equations for values of c and t. The difficulty of this task depends mostly on the difficulty of the curve itself.
If the curve has equation y = f(x) (or in other words a simple representation x(t) = t and y(t) = f(x(t)) = f(t)), then you have
c = a-x cf'(x) = b-f(x)
Therefore (a-x)f'(x) = b-f(x). If f(x) is a polynomial of degree n, the problem is reduced to root-finding of a polynomial of degree n so you'll have at most n roots to deal with. So in general it won't be easy. This reduces to the code in the post if you use line segments.