计算机图形学-样条曲线Spline

计算机图形学-样条曲线Spline内容来自 计算机图形学 第四版第 14 章 样条表示目录 1 样条的种类 1 插值样条 2 逼近样条 2 参数连续性条件 2 几何连续性条件 3 样条描述 1 列出一组施加在样条上的边界条件 2 列出描述样条特

大家好,欢迎来到IT知识分享网。

内容来自《计算机图形学》第四版 第14章-样条表示



  • 样条:通过一组指定点集生成平滑曲线的柔型带
  • 样条曲线:计算机图形学中,样条曲线指多项式曲线段连接而成的曲线

[1] 样条的种类

1. 插值样条

当选取的多项式使得曲线通过每个控制点,则所得曲线称为该组控制点的插值(interpolate)样条曲线。插值曲线常用于数字化绘图或指定路径

方法包括:

  • 自然三次样条
  • Hermite 插值
  • Cardinal 样条
  • Kochanek-Bartels 样条

在这里插入图片描述

2. 逼近样条

另一情况,当选取的多项式使部分或全部控制点不在生成的曲线上,则所得曲线称为该组控制点的逼近(approximate)样条曲线。逼近曲线一般作为设计工具来构造对象形体。
在这里插入图片描述
方法包括

  • Bezier曲线
  • B样条
  • Beta样条
  • 有理样条

[2] 参数连续性条件

为保证分段参数曲线从一段到另一段连续过渡,可以在连接点处要求各种连续性条件(continuity conditions),如样条的每一部分以参数方程描述:

x = x ( u ) , y = y ( u ) , z = z ( u ) , u ∈ [ u 1 , u 2 ] x=x(u), y=y(u), z=z(u), u∈[u_1,u_2] x=x(u),y=y(u),z=z(u),u[u1,u2]

则通过曲线段公共部分匹配连接的参数导数,从而建立参数连续性(parametric continuity)。

0阶参数连续性 C 0 C^0 C0 简单地表示曲线相连;

一阶参数连续性 C 1 C^1 C1 说明代表两条相邻曲线段的方程在相交点处有相同的一阶导数:如连接点 u 0 u_0 u0两侧曲线的参数方程分别为 x 1 ( u ) , y 1 ( u ) x_1(u), y_1(u) x1(u),y1(u) x 2 ( u ) , y 2 ( u ) x_2(u), y_2(u) x2(u),y2(u),那么 x 1 ′ ( u ) = x 2 ′ ( u ) x_1′(u)=x_2′(u) x1(u)=x2(u) y 1 ′ ( u ) = y 2 ′ ( u ) y_1′(u)=y_2′(u) y1(u)=y2(u)时达到一阶参数连续性,其中’表示对参数 u u u求导。

二阶参数连续性 C 2 C^2 C2 同理,表示交点处切向量的变化率相等。
在这里插入图片描述

[2] 几何连续性条件

0阶几何连续性 G 0 G^0 G0 和一阶参数连续性 C 0 C^0 C0含义相同,表示曲线相连;

一阶几何连续性 G 1 G^1 G1 说明代表两条相邻曲线段的方程在相交点处的参数导数成比例:如连接点 u 0 u_0 u0两侧曲线的参数方程分别为 x 1 ( u ) , y 1 ( u ) x_1(u), y_1(u) x1(u),y1(u) x 2 ( u ) , y 2 ( u ) x_2(u), y_2(u) x2(u),y2(u),那么 x 1 ′ ( u ) / y 1 ′ ( u ) = x 2 ′ ( u ) / y 2 ′ ( u ) x_1′(u)/y_1′(u)=x_2′(u)/y_2′(u) x1(u)/y1(u)=x2(u)/y2(u)时达到一阶几何连续性,其中’表示对参数 u u u求导。实际上,即不用参数表达曲线时,曲线写成 y = f ( x ) y=f(x) y=f(x),交点两侧曲线y对x导数相等。

二阶几何连续性 G 2 G^2 G2 同理。

[3] 样条描述

以三次样条为例,有以下三种等价描述:

1. 列出一组施加在样条上的边界条件

2. 列出描述样条特征的行列式

3. 列出一组混合函数或基函数

[4] 三次样条插值方法

1. 自然三次样条 Natural Cubic Spline

在使用公式表示一个自然三次样条时,需要两个相邻曲线段正在公共边界处有相同的一阶和二阶导数,即自然三次样条具有 C 2 C^2 C2连续性。

在这里插入图片描述
如图,以参数方程 x ( u ) x(u) x(u)为例,有n+1个控制点,n段曲线,每段曲线4个系数,共有4n个多项式系数待定

分析约束数量:除去首末控制点,共n-1个内部控制点,每个内部控制点需要满足四个约束,包括左右两端曲线经过该控制点、左右两端对参数一阶导数和二阶导数相等。这样出现4n-4个约束。 对于首末控制点,各有一个位置约束,则共有4n-2个约束。还需两个约束条件,这时有两种解决方案:

  • 指定首末控制点处二阶导数=0
  • 增加两个隐含控制点,分别位于原首末控制点的外侧。这时,所有控制点都成为内部控制点,即满足4n个约束条件。

自然三次样条的主要缺陷 若控制点中的任意一个发生了变动,则整条曲线都要受到影响,即不支持“局部控制”。


2. Hermite 插值

指定每个曲线段的控制点的位置和一阶导数,那么对每个内部控制点,有4个约束:两侧曲线经过该控制点、两侧曲线导数等于给定值;对于首末控制点,各有2个约束,分别是位置约束和导数约束。那么共计4(n-1)+2*2 = 4n个约束。

这样,Hermite样条支持局部调整,因为每个曲线段仅依赖其端点的约束。

记每一段曲线的约束为端点 p k , p k + 1 p_k, p_{k+1} pk,pk+1和端点斜率 D p k , D p k + 1 Dp_k, Dp_{k+1} Dpk,Dpk+1,则参考[3]-2,可以通过约束计算系数,带入曲线表达式可得:

在这里插入图片描述
实际上,在这里,H即为基函数,也成为混合函数。
在这里插入图片描述

但是,除了控制点坐标之外,更好的处理方法是不需要处理输入曲线的斜率或其它几何信息即能生成样条曲线,Cardinal 样条和Kochanek-Bartels 样条可以满足这样的要求。

3. Cardinal 样条

在Cardinal样条中,一个控制点的一阶导数值可以由两个相邻控制点的坐标进行计算。

一个Cardinal样条完全由四个连续控制点给出,中间两个控制点是曲线端点,另外两个点用于计算端点斜率。

在这里插入图片描述
控制点 p k p_k pk p k + 1 p_{k+1} pk+1处的一阶导数和弦 p k − 1 p k + 1 p_{k-1}p_{k+1} pk1pk+1 p k p k + 2 p_{k}p_{k+2} pkpk+2成正比。参数t称为张量(tension)参数,控制样条与输入控制点之间的松紧程度。当t=0时,这样的曲线称为Catmull-Rom样条或Overhauser样条。
在这里插入图片描述




4. Kochanek-Bartels 样条

Kochanek-Bartels 样条是Cardinal样条的扩展,将两个附加参数引入到约束方程中,从而为调整曲线形状提供更多方便。

在这里插入图片描述
t是张量参数,b是偏离参数,c为连续性参数。

即通过其他控制点控制某控制点的导数的方式更复杂一些,可以产生更多控制效果。

在这里插入图片描述
















免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/136604.html

(0)
上一篇 2025-06-26 14:15
下一篇 2025-06-26 14:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信