1
$\begingroup$

I would like to find the value of parameter $t$ of a cubic Bezier curve for a given point $x, y$ lying on the curve. In other words, I would like to find $t$ which, if the Bezier curve would be evaluated at it, would result in given $x, y$.

I found similar question already posted here but mine is a bit different:

  1. the accepted answer refers to the notes of Tom Sederberg. I tried to look it up but there seems to be an error: the equation at the very bottom of the page 203:

$984100t^9_2 - 458200t^8_2 + 8868537t^7_2 - 9420593t^6_2 + 5949408t^5_2 - 2282850t^4_2 + 522890t^3_2 - 67572t^2_2 + 4401t_2 - 109 = 0$

seemingly cannot result in the very last column of the table at the p. 204:

$0.3489$
$0.1330$
$...$

Am I correctly assuming that the column should contain the roots of the equation? When I plug the coefficients into a online solver:

9
984100
-458200
8868537
-9420593
5949408
-2282850
522890
-67572
4401
-109

I get several complex roots instead.

  1. Even if I could make this "inversion technique" work, what would I do if the point would lie on a self-intersection (there: "double point")? I mean, if the given point should result in two or more $t$-s, how to find all of them? Sederberg just leaves a comment: "At a double point, an inversion equation will always give 0/0."

Thank you in advance!

$\endgroup$
  • $\begingroup$ The equation on page 203 is for finding the points of intersection of two cubic Bezier curves. To do inversion, use the stuff on pages 200 to 202. $\endgroup$ – bubba Oct 15 '15 at 0:51
  • $\begingroup$ At places where the curve is self-intersecting, the inversion formulae will not work. You can still use the numerical methods described in my answer to the question you cited. You essentially have to find the roots of a polynomial of degree 5. At points of self-intersection, the polynomial will have (at least) two distinct real roots. $\endgroup$ – bubba Oct 15 '15 at 0:54
  • $\begingroup$ @bubba Yes, about the pages for intersection and inversion. I was just trying to work through the provided example and got stuck on the very first step ("Those roots are the parameter values of the points of intersection.") as the listed roots don't seem to match the given polynomial..? $\endgroup$ – p_rohe Oct 15 '15 at 2:01
  • $\begingroup$ @bubba Out of curiosity, in your previous answer I linked to you say: "I don't think it's the point on the curve that's closest to B". Sederberg has another paper, of which I understand very little, called "The Algebra and Geometry of Curve and Surface Inversion" where, among other things, it reads: "For example, we can create an inversion equation that, to first order approximation, will return the parameter value of the nearest point on the curve". $\endgroup$ – p_rohe Oct 15 '15 at 2:13
  • $\begingroup$ Yes, I have also seen the other Sederberg paper you mention, but I haven't studied it in any detail. $\endgroup$ – bubba Oct 15 '15 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.