K-th Order Bezier Subdivision

One of the tools used in the Graphic Gem for computing the closest point to a cubic Bezier is a Bezier root finder. The elegance of this method lies in its use of geometric properties of Bezier curves to bracket roots. One of the computational tools in this process is subdivision of a k-th order Bezier curve. Instead of doing a straight port of the C code, I’m hoping to eventually release a general set of utility methods for Bezier curves in a BezierUtils class, one of which is the k-th order subdivision. Here is an example of subdividing a 5-th order curve (t=1/2) with the left and right control cages colored red and green, respectively.

Left and Right control cages for midpoint subdivision of a 5-th order Bezier curve
Left and Right control cages for midpoint subdivision of a 5-th order Bezier curve

Here is a similar 5-order curve showing the left and right 5-th order curves (in red and green) resulting from the midpoint subdivision.

Left and Right subdivided Bezier curves (t=1/2)
Left and Right subdivided Bezier curves (t=1/2)

That’s it for now … back to work on the closest point code in what little spare time comes my way. I should jam to Rush’s Subdivisions along the way 🙂

Advertisement