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