2024年3月22日发(作者:)
Bezier曲线原理及实现代码(c++)
一、原理:
贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他
运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由 Paul de Casteljau 于1959年
运用 de Casteljau 算法开发,以稳定数值的方法求出贝塞尔曲线。
线性贝塞尔曲线
给定点 P
0
、P
1
,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出:
且其等同于线性插值。
二次方贝塞尔曲线的路径由给定点 P
0
、P
1
、P
2
的函数 B(t) 追踪:
。
TrueType 字型就运用了以贝塞尔样条组成的二次贝塞尔曲线。
P
0
、P
1
、P
2
、P
3
四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于 P
0
走向 P
1
,并从 P
2
的方向来到 P
3
。一般不会经过 P
1
或 P
2
;这两个点只是在那里提供
方向资讯。 P
0
和 P
1
之间的间距,决定了曲线在转而趋进 P
3
之前,走向 P
2
方向的“长
度有多长”。
曲线的参数形式为:
。
现代的成象系统,如 PostScript、Asymptote 和 Metafont,运用了以贝塞尔样条
组成的三次贝塞尔曲线,用来描绘曲线轮廓。
一般化
P
0
、P
1
、…、P
n
,其贝塞尔曲线即
。
例如 :
。
如上公式可如下递归表达: 用
曲线。则
用平常话来说, 阶贝塞尔曲线之间的插值。
一些关于参数曲线的术语,有
表示由点 P
0
、P
1
、…、P
n
所决定的贝塞尔
即多项式
又称作 n 阶的伯恩斯坦基底多项式,定义 0
= 1。
点 P
i
称作贝塞尔曲线的控制点。多边形以带有线的贝塞尔点连接而成,起始于 P
0
并以
P
n
终止,称作贝塞尔多边形(或控制多边形)。贝塞尔多边形的凸包(convex hull)
包含有贝塞尔曲线。
0


发布评论