Bézier曲线

定义

给定空间n+1个点的位置矢量Pi(i=0,1,2…),则Bezier参数曲线上各点坐标的插值公式是:android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线

其中,Pi构成该贝塞尔曲线的特征多边形,android 贝塞尔插值 贝塞尔插值公式_图形学_02是n次Bernstein基函数:
android 贝塞尔插值 贝塞尔插值公式_插值_03

android 贝塞尔插值 贝塞尔插值公式_插值_04

Bernstein基函数的性质

  1. 非负性:android 贝塞尔插值 贝塞尔插值公式_图形学_05
  2. 端点性质
    android 贝塞尔插值 贝塞尔插值公式_插值_06    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_07
  3. 权性
    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_08
  4. 对称性
    android 贝塞尔插值 贝塞尔插值公式_插值_09
    因为
    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_10
  5. 递推性
    android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_11
    即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成, 因为android 贝塞尔插值 贝塞尔插值公式_插值_12
  6. 导函数
    android 贝塞尔插值 贝塞尔插值公式_基函数_13
  7. 最大值
    android 贝塞尔插值 贝塞尔插值公式_插值_14android 贝塞尔插值 贝塞尔插值公式_插值_15
  8. 升阶公式
    android 贝塞尔插值 贝塞尔插值公式_基函数_16
    android 贝塞尔插值 贝塞尔插值公式_基函数_17
    android 贝塞尔插值 贝塞尔插值公式_基函数_18
  9. 积分 android 贝塞尔插值 贝塞尔插值公式_插值_19
Bezier曲线的性质
  1. 端点性质
  • 曲线端点位置矢量
    由Bernstein基函数的端点性质可以推得,当t=0时,P(0)=P0 ;当t=1时,P(1)=Pn。由此可见,Bézier曲线的起点、终点与相应的特征多边形的起点、终点重合。
  • 切矢量
    因为android 贝塞尔插值 贝塞尔插值公式_插值_20
    所以当t=0时,P’(0)=n(P1-P0),当t=1时,P’(1)=n(Pn-Pn-1),这说明Bézier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致。
  1. 对称性:由控制顶点构造出的新Bézier曲线,与原Bézier曲线形状相同,走向相反。
    这个性质说明Bézier曲线在起点处有什么几何性质,在终点处也有相同的性质。
  2. 几何不变性:是指某些几何特性不随坐标变换而变化的特性
  3. 变差缩减性:若Bézier曲线的特征多边形是一个平面图形,则平面内任意直线与C(t)的交点个数不多于该
    直线与其特征多边形的交点个数,这一性质叫变差缩减性质。
    此性质反映了Bézier曲线比其特征多边形的波动还小,也就是说Bézier曲线比特征多边形的折线更光顺。
  4. 仿射不变性:在仿射变换下,Bézier曲线的形式不变。
Bézier曲线的生成
  1. 根据定义直接生成Bézier曲线(计算量较大)
    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_21
  1. 给出android 贝塞尔插值 贝塞尔插值公式_插值_22的递归计算式android 贝塞尔插值 贝塞尔插值公式_插值_23, 其中n ≥ i
  2. 将p(t)表示成分量坐标形式
  1. Bézier曲线的递推算法
    Bézier曲线上的任一个点(t),都是其它相邻线段的同等比例(t)点处的连线,再取同等比例(t)的点再连线,一直取到最后那条线段的同等比例(t)处,该点就是Bézier曲线上的点(t)
  2. de Casteljau算法几何作图
Bézier曲线的拼接

Bézier曲线次数的提高,而高次多项式又会带来计算上的困难,实际使用中,一般不超过10次。采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的连续条件。

给定两条Bézier曲线P(t)和Q(t),相应控制点为Pi(i=0, 1, …, n)和Qj(j=0,1,…, m)

  1. 要使它们达到G0连续,则:Pn= Q0
  2. 要使它们达到G1连续(平面),只要保证Pn-1,Pn=Q,Q1三点共线就行了(因为Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致)
  3. 要使它们达到G2连续(空间),则保证密切平面重合,副法线向量同向且曲率连续,更准确的说是曲率矢连续

Bézier曲面

定义

android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_24(i=0,1,…,m; j=0,1,…,n)为(m+1)(n+1)个空间点列,则m×n次张量积形式的Bézier曲面定义为:

android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_25android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_26

其中android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_27, android 贝塞尔插值 贝塞尔插值公式_插值_28是Bernstein基函数。依次用线段连接点列中相邻两点所形成的空间网格,称之为特征网格。

矩阵表示式

android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_29

在一般应用中,n和m不大于4

Bézier曲面的性质

  1. 角点位置:Bézier曲面特征网格的四个角点正好是Bézier曲面的四个角点,即
    android 贝塞尔插值 贝塞尔插值公式_插值_30android 贝塞尔插值 贝塞尔插值公式_基函数_31
    android 贝塞尔插值 贝塞尔插值公式_图形学_32android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_33
  2. 边界线:四条边界线也是Bézier曲线
    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_34android 贝塞尔插值 贝塞尔插值公式_基函数_35
    android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_36android 贝塞尔插值 贝塞尔插值公式_基函数_37
  3. 几何不变性
  4. 对称性
  5. 凸包性

Bézier曲面的拼接

设两张m×n次Bézier曲面片

android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_25

android 贝塞尔插值 贝塞尔插值公式_图形学_39

android 贝塞尔插值 贝塞尔插值公式_贝塞尔曲线_40

如果要求两曲面片达到android 贝塞尔插值 贝塞尔插值公式_基函数_41连续,则它们有公共的边界,即:android 贝塞尔插值 贝塞尔插值公式_android 贝塞尔插值_42
 于是有android 贝塞尔插值 贝塞尔插值公式_图形学_43, (i = 0, 1,…, m)

如果又要求沿该公共边界达到android 贝塞尔插值 贝塞尔插值公式_基函数_44连续,则两曲面片在该边界上有公共的切平面,因此曲面的法向应当是跨界连续的,即:
android 贝塞尔插值 贝塞尔插值公式_基函数_45

Bézier不足

  1. Bézier曲线或曲面不能作局部修改
  2. Bézier曲线或曲面的拼接比较复杂