TLDR: Is there a general rule saying that you can split rational Bézier curves, in such a way that both segments have end points where w=1?

For quadratic rational Bézier curves it seems true, that you can split them in two, and have unity end weights. My reasoning here is as follows: quadratic rational Bézier curves with unity end weights are conic segments. A segment of a conic segment is sill a conic segment, therefore a segment of a quadratic rational Bézier curve with unity end weights is another quadratic rational Bézier curve with unity end weights.

Sidenote: Is there a quadratic rational Bézier curve that isn't a conic? I think not, but I got that part from intuition, so please correct my if I assumed this falsely.

For higher order rational Bézier curves it would be nice if the same applied.

I would accept a straight answer to the question, if someone could also point to an algorithm to determine the control points and weights of the segment curves, if they exist, that would be appreciated as well.

@bubba: Please don't be mad at me for asking about rational Bézier again, I promise that I mostly switched to non-rational, and you are correct in pointing out that it simplifies a lot.


If you only want the two pieces to replicate the shape of the original curve, and not its parameterization, then the kind of splitting you describe is always possible.

Given any rational Bézier curve, you can "standardize" it to make both end weights equal to unity. So, you just split, and then standardize. The splitting is just the de Casteljau algorithm (but applied in 4D instead of 3D). The algorithm for standardizing is in Farin's book, and other places too. Ask again if you can't find it.

Regarding quadratic curves ... every connected portion of a conic can be represented in rational quadratic form. But several rational quadratic pieces might be needed; you can't represent a complete circle by a single rational quadratic, for example. Every rational quadratic is (a portion of) a conic.

  • $\begingroup$ Thank you for pointing me the right way. I looked it up, and remembered reading something similar in Tiller, so I included that as well. $\endgroup$ Sep 11 '17 at 13:07
  • $\begingroup$ I wrote an edit to your post to include the method given by Farin, but is seems the edit was rejected for some reason? Oh, well. $\endgroup$ Sep 11 '17 at 14:53

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.