中文

Bézier 曲线的快速细分

图形学 2026-05-01 v2 数值分析 数值分析

摘要

众所周知,使用著名的 de Casteljau 算法可以在 O(dn2)O(dn^2) 时间内将 ddnn 次 Bézier 多项式曲线细分为两段。这个问题能更高效地解决吗?在本文中,我们展示了利用快速傅里叶变换及其逆变换,可以在 O(dnlogn)O(dn\log{n}) 时间内完成此操作。实验表明,由于算法在数值上不稳定,直接应用新方法仅在 nn 值较小时表现良好。然而,一个稍作修改的版本——其计算复杂度仍为 O(dnlogn)O(dn\log{n})——提供了良好的数值质量,这一点在 \textsf{Python} 中进行的数值实验中得到了证实。此外,新方法具有良好的特性:如果 Bézier 曲线通过附加控制点进行扩展,则细分可以在 O(d)O(d) 时间内更新。类似的思想可用于加速有理 Bézier 曲线和矩形 Bézier 曲面的细分,以及更高效地计算 Bézier 曲线的导数。

关键词

引用

@article{arxiv.2509.15691,
  title  = {Fast subdivision of B\'{e}zier curves},
  author = {Paweł Woźny and Filip Chudy},
  journal= {arXiv preprint arXiv:2509.15691},
  year   = {2026}
}