Fast subdivision of Bézier curves
By: Paweł Woźny, Filip Chudy
Potential Business Impact:
Splits computer curves faster, even with more points.
It is well-known that a $d$-dimensional polynomial B\'{e}zier curve of degree $n$ can be subdivided into two segments using the famous de Casteljau algorithm in $O(dn^2)$ time. Can this problem be solved more efficiently? In this paper, we show that it is possible to do this in $O(dn\log{n})$ time using the fast Fourier transform and its inverse. Experiments show that the direct application of the new method performs well only for small values of $n$, as the algorithm is numerically unstable. However, a slightly modified version -- which still has $O(dn\log{n})$ computational complexity -- offers good numerical quality, which is confirmed by numerical experiments conducted in \textsf{Python}. Moreover, the new method has a nice property: if a B\'{e}zier curve is extended by an additional control point, the subdivision can be updated in $O(d)$ time. A similar idea can be applied to speed up the subdivision of rational B\'{e}zier curves and rectangular B\'{e}zier surfaces, as well as to compute the derivatives of B\'{e}zier curves more efficiently.
Similar Papers
Efficient Subdivision of Bézier Curves/Surfaces via Blossoms
Computational Geometry
Makes computer shapes change smoothly and fast.
Constant Approximation of Fréchet Distance in Strongly Subquadratic Time
Computational Geometry
Finds how similar two wiggly lines are faster.
A New Approach to the Construction of Subdivision Algorithms
Computational Geometry
Makes computer shapes smoother and more detailed.