贝塞尔曲线
背景#
贝塞尔曲线在计算机图形学中的应用十分广泛,photoshop的钢笔工具,字体的轮廓,以及各种需要描述轨迹的地方如摄像机轨迹,粒子的速度曲线都用到了贝塞尔曲线。
贝塞尔曲线的数学基础——伯恩斯坦多项式(可以理解为:一个连续函数,可以将它表示成n个伯恩思坦多项式相加的形式,并且随着n 趋向于无穷大,这个多项式将收敛到原函数)建立于 1912 年,但直到1959 年,数学家 Paul de Casteljau 发明出数值稳定的 de Casteljau 算法时,多项式才应用于图形。de Casteljau 算法在法国获得了专利,但直到 80 年代才公布,而贝塞尔多项式在 1960 年代被法国工程师皮埃尔·贝塞尔(Pierre Bézier)应用于雷诺汽车的车身设计,并得到广泛宣传。
这个网页能模拟钢笔工具的应用:bezier.method.ac/。
贝塞尔曲线公式#
给定一系列控制点,第一个和最后一个控制点为贝塞尔曲线的起点和终点,并且由中间的控制点控制曲率。
下面推导一下贝塞尔曲线的公式。给定n个控制点
根据控制点的个数,可以将贝塞尔曲线分类为不同阶数,从一阶曲线推广到多阶,可以快速理解贝塞尔曲线的计算。
一阶贝塞尔曲线(2个控制点)#
这是一条线段,很容易得到曲线的公式
二阶贝塞尔曲线(3个控制点)#
先在三个控制点组成的两条线段
三阶贝塞尔曲线(4个控制点)#
类似于二阶贝塞尔曲线的推导,
先求出一系列控制点
再求出新的控制点
可得贝塞尔曲线的公式,
n阶贝塞尔曲线(n+1个控制点)#
推广到n阶,可得
以上就是De Casteljau算法的思想,通过递归求控制点,求得贝塞尔曲线。
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具