I am trying to evaluate and analyse a NURBS curve to generate a mechanism. I understand that the general form of a NURBS curve is commonly written as a parametric equation in the form of $f_{par}(t)$.

Now, the criteria to generate the above mechanism from a curve are well-established. However, they are based on the implicit form of the curve $f_{imp}(x, y, z)$ as a (quite high order) polynomial. These criteria describe, for example, the relationships among the coefficients of $f_{imp}(x, y, z)$, in addition to some properties of the curve (degree, etc).

My thought is, if I could represent the input NURBS curve in its implicit form, I could conveniently apply the above criteria to the NURBS curve (e.g., in an application, return error if a designer specifies an invalid set of parameters), and hopefully redefine these criteria within the context of NURBS specification. Am I correct to say this?

I also understand there exist implicitization techniques, to represent parametric curves in their implicit equations. However, so as to not reinvent the wheel: knowing that NURBS is pretty much an industry standard and widely researched, I was just wondering if this has been done before in a paper or article?

What I have so found so far:

  • It is mentioned in Les Piegl's The NURBS Book that "Theoretically, a precise conversion of a NURBS to piecewise implicit form is possible, using techniques known as implicitization", but no details is given (implicitization not being their interest)
  • Busé's 2014 paper "Implicit matrix representations of rational Bézier curves and surfaces" [link] (but not NURBS)

Thank you!

PS: previously asked in MathOverflow, but I was suggested to ask here.

  • $\begingroup$ Since the set of parametric curves is a subset of the set of implicit curves, one can always find an implicit form. A thorough treatment of implicitization techniques can be found in these lecture notes: scholarsarchive.byu.edu/facpub/1. There are papers about representing NURBS curves and surfaces implicitly, like this one: heldermann-verlag.de/jgg/jgg09/j9h1bast.pdf $\endgroup$ Oct 13 at 20:31
  • $\begingroup$ However, these implicitization methods are costly, as the implicit function is found symbolically. What you could try is figuring out what information is needed by the program that generates a mechanism, and you could supply that directly. E.g. if it needs sampling points on your curve, you could give that directly, instead of supplying the implicit curve itself. $\endgroup$ Oct 13 at 20:34
  • $\begingroup$ Thank you for your comment. Actually, I am only interested in the final implicit form, and not much on the implicitization method itself. Therefore, the method's performance is not much a concern. (In fact, I am prepared to do it by hand, if necessary.) I also found Bastl and Ježek's paper (which I forgot to list above), but they only seemed to analyse the methods' correctness and performances, and did not write the resulting implicit equation. Having said these, thank you so much for pointing out Sederberg's notes, and the direction. :) $\endgroup$
    – Nicholas
    Oct 14 at 4:31
  • $\begingroup$ @ZoltánCsáti, would you mind expanding your comments into an answer? $\endgroup$
    – nicoguaro
    Oct 14 at 13:48
  • $\begingroup$ @nicoguaro These were just tips, I don't have the domain knowledge in this field, so I don't think my comments are worth an answer. $\endgroup$ Oct 14 at 14:57

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.