Fast subdivision of Bézier curves

Paweł Woźny, Filip Chudy

公開日: 2025/9/19

Abstract

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.