计算机图形学----贝塞尔曲线与曲面相关知识汇总

本文深入探讨了贝塞尔曲线和曲面的定义,包括Bernstein基函数的性质、Bezier曲线的端点性质、凸包性和变差缩减性等。介绍了Bezier曲线的递推算法——deCasteljau算法,并阐述了Bezier曲线的升阶过程。同时,也提到了Bezier曲面的相关性质和递推算法,展示了它们在计算机图形学中的重要应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文整理自西安交通大学软件学院祝继华老师的计算机图形学课件,请勿转载

贝塞尔曲线与曲面

定义

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

image-20220215152803609

P i P_i Pi构成该Bezier曲线的特征多边形

B i , n ( t ) B_{i,n}(t) Bi,n(t)是n次Bernstein基函数:

image-20220215152844323

Betnstein基函数的性质

  • 正性

image-20220215153155605

  • 端点性质

image-20220215153224440

  • 权性

image-20220215153243437

  • 对称性

image-20220215153253685

  • 递推性

    即高一次的Bernstein基函数可由两个低一次Bernstein基函数线性组合而成

image-20220215153310988

Bezier曲线的性质

  • 端点性质

    • 由Bernstein基函数的端点性质可以推得,当t=0时,P(0)= P 0 P_0 P0 ;当t=1时,P(1)= P n P_n Pn。由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。

    • 二阶导矢

      image-20220215154734467

      上式表明:2阶导矢只与相邻的3个顶点有关,事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关。

  • k阶导函数的差分表示

    高阶向前差分矢量由低阶向前差分矢量递推地定义

    image-20220215155021932

    image-20220215155035877

  • 对称性

    由控制顶点 P i ∗ = P n − i , ( i = 0 , 1 , . . . , n ) P^*_i=P_{n-i},(i=0,1,...,n) Pi=Pni,(i=0,1,...,n)构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反

    这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质

  • 凸包性

    image-20220215155234770

  • 几何不变性

    某些几何特性不随坐标变换而变化的特性;

    Bezier曲线位置与形状与其特征多边形顶点 P i ( i = 0 , 1 , . . . , n ) P_i(i=0,1,...,n) Pi(i=0,1,...,n)的位置有关:

    image-20220215155334447

  • 变差缩减性

    若Bezier曲线的特征多边形 P 0 P 1 . . . P n P_0P_1...P_n P0P1...Pn是一个平面图形,则平面内任意直线与P(t)的交点个数不多于该直线与其特征多边形的交点个数;

    反映了Bezier曲线比其特征多边形的波动还小。

  • 仿射不变性

    image-20220215155441424

Bezier曲线的递推算法

de Casteljau(德卡斯特里奥)递推算法

image-20220215155512866

由(n+1)个控制点 P i ( i = 0 , 1 , . . . , n ) P_i(i=0,1,...,n) Pi(i=0,1,...,n)定义的n次Bezier曲线 P 0 n P_0^n P0n可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线 P 0 n − 1 P_0^{n-1} P0n1 P 1 n − 1 P_1^{n-1} P1n1的线性组合:

image-20220215155645292

由此得到Bezier曲线的递推计算公式

image-20220215155658220

  • 在给定参数下,求Bezier曲线上一点P(t)非常有效。
  • 上式中: P i 0 = P i P_i^0=P_i Pi0=Pi 是定义Bezier曲线的控制点, P 0 n P_0^n P0n即为曲线 P ( t ) P(t) P(t)上具有参数t的点。
  • 算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法。

当n=3时,算法递推出的 P i k P_i^k Pik呈直角三角形,对应结果如图所示。从左向右递推,最右边点 P 0 3 P_0^3 P03即为曲线上的点

image-20220215155851825

Bezier曲线的升阶

升阶:保持Bezier曲线的形状与方向不变,增加定义它的控制顶点数,提高该Bezier曲线的次数

新控制顶点的计算

image-20220215160546075

上述结果说明:

  • 新的控制顶点 P i ∗ P_i^* Pi是以参数值 i n + 1 \frac{i}{n+1} n+1i按分段线性插值从原始特征多边形得出的
  • 升阶后的新的特征多边形在原始特征多边形的凸包内
  • 特征多边形更靠近曲线。

Bezier曲面

定义

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

image-20220215160854990

性质

  • 几何不变性。
  • 对称性。
  • 凸包性。
  • 除变差缩减性质外,Bezier曲线的其它性质可推广到Bezier曲面

递推算法

Bezier曲线的递推算法可推广至Bezier曲面的情形

image-20220215161012474

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hydrion-Qlz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值