Degrafa Cubic Bezier Y at X Update
A small issue was recently fixed in the cubic Bezier y at x method, so you should upate the code base from SVN. The following screen shot illustrates the correction.
A few people have asked about the algorithm. Given x=a, the y-values at the specified x-coordinate occur at t-parameters where x(t) = a, t in [0,1]. The polynomial coefficients are computed, so that x(t) = c0*t + c1*t + c2*t^2 + c3*t^3. The problem then reduces to finding zeros of the continuous function f(t) = x(t)-a=0. Since this is a cubic, one root is found by any method. Then, the factor theorem is used to factor out the root using synthetic division. Any remaining roots are from a quadratic polynomial. These can be computed directly using the quadratic formula.
With a non-looping Bezier, there is generally a recognizable root in [0,1]; that is f(0)*f(1) < 0 . With curves that loop like the one above, bisection is often required to identify intervals with a root. A typo was made when porting the internal bisection code from Singularity to Degrafa. Thanks to the poster who identified the issue and I hope this gives you some insight into the method of approach.