C_1插值B样条曲线

合集下载

b样条曲线曲率简易求解算法

b样条曲线曲率简易求解算法

b样条曲线曲率简易求解算法摘要:I.引言- 介绍b 样条曲线- 阐述曲率在曲线设计中的重要性II.b 样条曲线的定义与性质- 定义b 样条曲线- 介绍b 样条曲线的性质III.曲率的计算方法- 详细介绍b 样条曲率的计算方法- 解释各参数的含义及计算过程IV.曲率简易求解算法- 介绍曲率简易求解算法- 阐述算法的原理与步骤V.算法实现与分析- 给出算法实现代码- 分析算法的效率与准确性VI.结论- 总结文章内容- 指出算法的局限性与改进方向正文:I.引言b 样条曲线是一种具有广泛应用的曲线类型,广泛应用于计算机图形学、数值分析、建模等领域。

在曲线设计中,曲率是一个重要的参数,它反映了曲线在某一点处的弯曲程度。

因此,如何高效地计算b 样条曲率成为曲线处理领域的一个研究热点。

本文将介绍一种曲率简易求解算法,并对算法的原理与实现进行详细分析。

II.b 样条曲线的定义与性质b 样条曲线是一种以基函数和控制点加权求和表示的曲线,具有局部性和加权特性。

b 样条曲线可以表示为:C(u) = Σ[Ni(u) * Pi]其中,Ni(u) 是基函数,Pi 是控制点,u 是参数值。

b 样条曲线的性质包括:1) 局部性,即在某一区间内,曲线可以用基函数和控制点的有限和表示;2) 加权特性,即不同控制点对曲线的贡献程度不同,权重由基函数决定。

III.曲率的计算方法b 样条曲率的计算方法主要依赖于de Boor 算法,该算法利用b 样条曲线的性质,通过递归方式计算曲率。

具体计算过程如下:1) 计算第一阶导数C"(u):C"(u) = Σ[Ni(u) * Ni(u)]2) 计算第二阶导数C""(u):C""(u) = Σ[Ni(u) * (Ni(u) + Ni(u+1))]其中,Ni(u) 表示第i 个基函数在参数u 处的取值,Ni(u+1) 表示第i 个基函数在参数u+1 处的取值。

B样条曲线

B样条曲线

Bezier曲线
给定P0、P1、P2、P3,三次曲线的参数形式如下:
三次曲线的动态图如下:
对于三次曲线,可由线性贝塞尔曲线描述的中介点 Q0、Q1、Q2,和由二次曲线描述的点R0、R1所建 构。P0、P1、P2、P3四个点在平面或在三维空间中 定义了三次方贝塞尔曲线。曲线起始于P0走向P1, 并从P2的方向来到P3。一般不会经过P1或P2;这两 个点只是在那里提供方向资讯。P0和P1之间的间距, 决定了曲线在转而趋进P3之前,走向P2方向的“长 度有多长”。
Bezier曲线
更高阶的贝塞尔曲线,可以用以下公式表示:用表示由点 P0、P1、…、Pn所决定的贝塞尔曲线。则有:
高阶曲线的动态图如下:
要“画”出贝塞尔曲线,一般需要进行 较多的计算,然后绘制出来。
Bezier曲线 Bezier曲线的一般化形式:
即:
其中多项式:
又称作 n 阶的伯恩斯坦基底多项式,定义 00 = 1。
B样条曲线
Bezier曲线改变一点曲线整体受影响
B样条曲线
B样条曲ቤተ መጻሕፍቲ ባይዱ的优点:
易于进行局部修改; 更逼近特征多边形;
是低阶次的曲线。
B样条曲线改变一点曲线局部受影响
B样条曲线
均匀B样条曲线的参数表达式为:
式中为n次B样条基函数,其形式为:
其中
B样条曲线
B样条曲线的C语言实现
  #include<graphics.h> #include<conio.h> float px[10]={50,90,150,120,220,300,380,320,450,500}; float py[10]={100,60,50,150,240,100,100,200,250,130}; void B_spline() { float a0,a1,a2,a3,b0,b1,b2,b3; int k,x,y; float i,t,dt,n=10; setcolor(15); dt=1/n; for(k=0;k<10;k++) { if(k==0) moveto(px[k],py[k]);  lineto(px[k],py[k]); } setcolor(4); for(k=0;k<10-3;k++) {       if(getch()==17)exit();

b样条曲线设计实例

b样条曲线设计实例

b样条曲线设计实例以下是一个b样条曲线设计实例:假设要设计一个光滑的曲线,连接三个控制点 A、B 和 C。

其中,控制点 A 的坐标为 (0, 0),控制点 B 的坐标为 (2, 3),控制点 C 的坐标为 (4, 1)。

首先,我们需要确定曲线的顺序。

对于这个例子,我们选择二次b样条曲线,即顺序为2。

接着,我们需要确定节点向量。

节点向量的长度等于控制点的数量加上顺序的数量。

在这个例子中,控制点的数量为3,顺序为2,所以节点向量的长度为5。

节点向量可以选择均匀分布,也可以根据需要进行调整。

在这个例子中,我们选择均匀分布的节点向量,即 (0, 0, 1, 2, 3)。

然后,我们可以使用节点向量和控制点的坐标来计算b样条曲线上的点的坐标。

对于每个参数值 t,其中 t 的取值范围为 0 到 4(即节点向量的最后一个元素),计算b样条曲线上的点的坐标。

例如,当 t = 1 时,使用节点向量和控制点的坐标进行计算。

首先,确定控制点的权重,计算公式为:w0 = (t - t0) / (t2 - t0)w1 = (t - t0) / (t3 - t1)w2 = (t - t1) / (t4 - t2)其中,t0 = 0,t1 = t2 = 1,t3 = t4 = 2。

计算得到 w0 = 0,w1 = 0,w2 = 1。

然后,根据权重和控制点的坐标计算曲线上的点的坐标,计算公式为:P(t) = w0 * A + w1 * B + w2 * C代入控制点的坐标 A = (0, 0), B = (2, 3), C = (4, 1),得到:P(t) = 0 * (0, 0) + 0 * (2, 3) + 1 * (4, 1) = (4, 1)所以,当 t = 1 时,曲线上的点的坐标为 (4, 1)。

通过类似的计算,可以得到其他参数值对应的曲线上的点的坐标。

最后,连接这些点,就得到了b样条曲线。

样条曲面插值

样条曲面插值

样条曲面插值
样条曲面插值是一种数学方法,用于从离散的点集构建平滑的曲面。

这些点通常表示在二维或三维空间中的位置,而样条曲面则用于近似这些点并创建一个连续的曲面。

插值是指根据已知的离散数据点来推断出其他位置上的数值。

样条曲面插值的目标是通过一个连续且光滑的曲面,最好地逼近这些离散数据点。

常见的样条曲面插值方法包括:
1. 双三次插值样条曲面(Bicubic Interpolation):这种方法使用双三次样条插值来创建一个连续的曲面,它在每个方向上都使用三次多项式来逼近数据点。

2. Bezier曲面:Bezier曲面是由Bezier曲线推广而来的,它利用多个Bezier曲线的控制点来构建曲面。

3. B样条曲面(B-spline Surface):B样条曲面使用多个B样条来构建曲面,这些B样条由节点序列和控制点确定。

4. 样条插值基础上的曲面拟合:在这种方法中,通过使用已知数据点,先进行样条插值以获得一个曲面网络,然后利用这个网络进行曲面拟合。

这些方法都有其独特的优势和适用场景,但都旨在从离散的点集构建出平滑、连续的曲面,使得对数据的预测和分析更加准确和可靠。

B样条曲线与曲面

B样条曲线与曲面

四、B样条曲线与曲面Bezier曲线具有很多优越性,但有二点不足:1)特征多边形顶点数决定了它的阶次数,当n较大时,不仅计算量增大,稳定性降低,且控制顶点对曲线的形状控制减弱;2)不具有局部性,即修改一控制点对曲线产生全局性影响。

1972年Gordon等用B样条基代替Bernstein基函数,从而改进上述缺点。

B样条曲线的数学表达式为:在上式中,0 ≤ u ≤ 1;i= 0, 1, 2, …, m所以可以看出:B样条曲线是分段定义的。

如果给定 m+n+1 个顶点 Pi ( i=0, 1, 2,…, m+n),则可定义m+1 段 n 次的参数曲线。

在以上表达式中:Nk,n(u) 为 n 次B样条基函数,也称B样条分段混合函数。

其表达式为:式中:0 ≤ u ≤1k = 0, 1, 2, …, n1.均匀B样条曲线1 一次均匀B样条曲线的矩阵表示空间n+1个顶点(i = 0,1,…,n)定义n段一次(k=0,1,n=1)均匀B样条曲线,即每相邻两个点可构造一曲线段Pi(u),其定义表达为:=(1-u)Pi-1 + u Pi= N0,1(u)Pi-1 + N1,1(u)Pi第i段曲线端点位置矢量:,且一次均匀B样条曲线就是控制多边形。

2 二次均匀B样条曲线的空间n+1个顶点的位置矢量(i=0,1,…,n)定义n-1段二次(k=0,1,2, n=2)均匀B样条曲线,每相邻三个点可构造一曲线段Pi(u)(i=1,…,n-1),其定义表达为:=(1 - 2 u + u 2)Pi-1 +(1 + 2 u - 2u2)Pi +u 2 Pi+1= N0,2(u)Pi-1 + N1,2(u)Pi + N2,2(u)Pi+1端点位置矢量:,,即曲线的起点和终点分别位于控制多边形Pi-1Pi和PiPi+1的中点。

若、、三个顶点位于同一条直线上,蜕化成直线边上的一段直线。

端点一阶导数矢量:,,,,即曲线的起点切矢和终点切矢分别和二边重合,且相邻两曲线段在节点处具有一阶导数连续。

在线轨迹平滑算法-概述说明以及解释

在线轨迹平滑算法-概述说明以及解释

在线轨迹平滑算法-概述说明以及解释1.引言1.1 概述概述在线轨迹平滑算法是一种用于处理轨迹数据的技术,旨在通过对轨迹点进行插值和平滑操作,提高轨迹的准确性和可读性。

轨迹数据通常是由移动设备、传感器或其他数据采集设备获取到的,它描述了一系列位置点的变化情况。

然而,由于设备采集误差和噪声的存在,轨迹数据往往会出现不平滑和不准确的情况,给后续的数据分析和应用带来了困扰。

在线轨迹平滑算法旨在通过数学插值和信号处理技术,对轨迹数据进行平滑处理,以得到更加精确和连续的轨迹。

它可以修复轨迹中的噪声点、缺失点和异常点,填补轨迹的空缺部分,并减少轨迹的抖动和不规则性。

通过在线处理方式,算法可以实时响应轨迹采集过程中的变化,适应不同的应用场景和数据类型。

本文将介绍两种常用的在线轨迹平滑算法:线性插值算法和B样条插值算法。

线性插值算法是一种简单而有效的平滑方法,它通过对轨迹点之间的直线进行插值,得到平滑的轨迹曲线。

B样条插值算法是一种基于参数曲线的插值方法,它通过拟合轨迹点和控制点之间的曲线,获得更加灵活和精确的轨迹平滑结果。

最后,我们将对这两种算法进行总结,并比较它们的优劣。

通过本文的介绍和讨论,读者可以了解到在线轨迹平滑算法的基本原理和应用,以及如何根据实际需求选择合适的算法进行轨迹处理。

1.2文章结构在文章结构部分,我们将对整篇文章的组织和布局进行介绍。

本文将按照以下结构展开:第一部分是引言,主要包括概述、文章结构和目的。

在概述部分,我们将简要介绍在线轨迹平滑算法的背景和应用场景。

文章结构部分将提供读者对整篇文章的脉络有一个清晰的了解,以便更好的理解和掌握文章内容。

最后,目的部分将明确本文的研究目标和意义。

接下来是正文部分,主要包括线性插值算法和B样条插值算法两个方面的内容。

在线轨迹平滑算法的核心思想将在这一部分进行详细介绍和分析。

线性插值算法是最简单直观的一种插值方法,我们将对其原理和实现进行深入探讨。

而B样条插值算法则是一种更加灵活和平滑的插值方法,我们将对其原理、优势和应用进行详细介绍,并与线性插值算法进行比较。

闭合B样条曲线控制点的快速求解算法及应用

闭合B样条曲线控制点的快速求解算法及应用

0 引 言
B 样 条 曲 线 在 训 算 机 辅 助 设 计 与 制 造 中应 用广 泛 。构 造
B样 条 曲线 一 有 正 算 和 反 算 两 种 方 式 ,反 算 即 插 值 方 式 是 般 已知 曲线 上的 型 值 点 { , } 反解 出控 制 点 { , 由控 制 点 {l P} 再 P} 构 造 B样 条 曲 线 , 种 方 法 能够 有 效 地 解 决 计 算 机 辅 助 几 何 这
17 2 1, o 3, o 计算 机 工 程 与 设计 C m u r ni en d e g 34 01 V 1 2 N . . 4 o pt E g e i a D s n e n rg n i
闭合 B样条曲线控制点的快速求解算法及应用
任 菲 , 王 家润 , 仇 建伟 , 聂 芸
Q ikag r h o ligc nrl ons f lsdB—pie uv n p l ain uc loi m f ovn o t it o oe S l re da pi t t s op c n c a c o
RE e, WANGJarr QI J nwe, NI u NFi i—l, ll U a— i i EY n
法, 具有 较 少的存 储 空间和计 算量 。在 此基础上 , 根据 追赶法 的原理 , 计 了闭合 B样 条 曲线控 制点 的快速求 解算 法。通过 设 数 值 实验 和在 等值 线光滑 中的 实际应 用 , 明 了该 算法 的可 靠性和有 效性 。 表 关键 词: B样 条曲线 闭合 曲线;控 制 点;L u分解 ; 追赶 法; 等值线 光滑 中图法分类号 : P9 T31 文献标 识码 : A 文章 编号 :0 07 2 (o 1O 一340 t0 .0 4 2 l) 4 l7 —5

bezier bezier曲线、b-样条生成原理

bezier bezier曲线、b-样条生成原理

贝塞尔曲线(Bezier Curve)和B样条(B-Spline)是计算机图形学中常用的两种曲线生成方法,它们在图形设计、动画制作、CAD软件等领域被广泛应用。

本文将从贝塞尔曲线和B样条的生成原理入手,深入探讨它们的内在机制和应用。

一、贝塞尔曲线的生成原理贝塞尔曲线是一种由法国工程师皮埃尔·贝塞尔(Pierre Bézier)于1962年在汽车工业中首次引入的曲线生成方法。

其生成原理基于一组控制点来描述曲线的形状,这组控制点通过线性插值的方式来确定曲线的路径。

贝塞尔曲线的生成过程可以简要描述如下:1. 定义控制点:从给定的控制点集合中选择若干个点作为曲线的控制点。

2. 插值计算:根据控制点的位置和权重,通过插值计算得到曲线上的点。

3. 曲线绘制:利用插值计算得到的曲线上的点,进行绘制来呈现出贝塞尔曲线的形状。

在具体应用中,贝塞尔曲线的生成可以通过线性插值、二次插值和三次插值等不同插值方式来实现,其中三次插值的贝塞尔曲线应用最为广泛,其生成原理更为复杂,但也更为灵活。

二、B样条的生成原理B样条(B-Spline)是另一种常用的曲线生成方法,在实际应用中具有一定的优势。

B样条的生成原理与贝塞尔曲线不同,它是基于多项式函数的分段插值来描述曲线的形状。

B样条的生成过程可以简要描述如下:1. 定义控制点和节点向量:B样条需要定义一组控制点和一组节点向量(Knot Vector)来描述曲线的形状。

2. 基函数计算:根据节点向量和控制点,计算出关联的基函数(Basis Function)。

3. 曲线计算:利用基函数和控制点的权重,通过计算得到曲线上的点。

相比于贝塞尔曲线,B样条更为灵活,可以更精细地描述曲线的形状,并且能够进行局部编辑,使得曲线的变形更加方便。

三、应用比较与总结贝塞尔曲线和B样条是两种常用的曲线生成方法,它们各自具有一些优势和劣势,在实际应用中需要根据具体情况做出选择。

1. 灵活性比较:B样条相对于贝塞尔曲线更加灵活,能够更精细地描述曲线的形状,并且能够进行局部编辑,使得曲线的变形更加方便。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 引言
参 数 曲 线 曲 面 是 CAGD 研 究 的 主 要 内 容 , 其 中 的 B é zier 方 法 、 B 样 条 方 法 ,NURBS 方 法 因 其 良 好 的 光 顺 性 、 凸包性、 形状可调性 等 ,而 受 到 人 们 的 重 视 ,并 广 泛 应 用 于 机 械 、 汽车、 航天等各个领 域。 然而这几种方法在插值方面却有不足之处 ,B é zier 方法的光滑 拼 接 条 件 苛 刻 ,B 样 条 方 法 和 NURBS 方 法 不 具 有 插 值 功 能 。 传统的 方 法 是 反 算 控 制 顶 点 ,这 种 方 法 需 解 大 型 线 性 方 程 ,计 算 费 用 较 大 ,且 曲 线 的 形 状 难 以 局 部 修 改 。 本文介绍一种具有保形均匀三次 B 样条插值曲线。 在给定的控 制 多 边 形 的 每 2 个 顶 点 之 间 插 入 2 个 deBoor 点 , 形 成 一 个 新 的 控 制 多边形 , 由此所产生的均匀 B 样条曲线插值于给定的控制多边形的 所有顶点。 进一步建立相邻四个插值点与新的控制顶点的关系 , 从 而 构 造 一 组 插 值 基 函 数 ,插 值 曲 线 由 所 构 造 的 基 函 数 和 型 值 点 直 接 表 示 , 插 值 曲 线 具 有 保 形 凸 性 和 C1 连 续 性 。
V2i −1 = λi ti Pi −1 + (1 + λi − 2λi ti ) Pi − λi (1 − ti ) Pi +1 V2i = −λi ti Pi −1 + (1 − λi + 2λi ti ) Pi + λi (1 − ti ) Pi +1 (4) V2i +1 = λi +1ti +1 Pi + (1 + λi +1 − 2λi +1ti +1 ) Pi +1 − λi +1 (1 − ti +1 ) Pi + 2 V = − λ t P + (1 − λ + 2 λ t ) P + λ (1 − t ) P i +1 i +1 i i +1 i +1 i +1 i +1 i +1 i +1 i+2 2i + 2 由 V2i −1 , Pi ,V2 i ,V2i +1 , Pi +1 , V2 i + 2 , , 可 生 成 插 值 于 Pi , Pi +1 的 三 次 均 匀 B 样 条曲线 E0,3 (t )V2i −1 + E1,3 (t ) Pi + E2,3 (t )V2i + E3,3 (t )V2i +1 , (0 ≤ t ≤ 1) Pi (t ) = E0,3 (t − 1) Pi + E1,3 (t − 1)V2i + E2,3 (t − 1)V2 i +1 + E3,3 (t − 1) Pi +1 , (1 ≤ t ≤ 2) E (t − 2)V + E (t − 2)V + E (t − 2) P + E (t − 2)V , (2 ≤ t ≤ 3) 2i 1,3 2 i +1 2,3 i +1 3,3 2i + 2 0,3 将 (4) 式 代 入 上 式 并 整 理 得 : 3 ∑ BS1 j (t ) Pi + j −1 , (0 ≤ t ≤ 1) j=0 3 Pi (t ) = ∑ BS 2 j (t − 1) Pi + j −1 , (1 ≤ t ≤ 2) 2 均匀B样条曲线及其性质 j=0 3 给 定 n + 1(n ≥ k ) 个 空 间 点 Vi (i = 0,1,L, n) , 它 对 应 的 k 次 均 匀 B ∑ BS3 j (t − 2) Pi + j −1 , (2 ≤ t ≤ 3) 样条曲线可分段表示为 j=0 k 其 中 BS 1 j (t ), BS 2 j (t ), BS3 j (t ), ( j = 0,1, 2,3) 如 下 r (u ) = ∑ Ei , k (u )Vi +l , l = 0,1,L , n − k , 0 ≤ u ≤ 1 (1) BS10 (t ) = λi ti ( E0,3 (t ) − E 2,3 (t )) i =0 式 中 Ei , k (u ) 是 均 匀 k 次 B 样 条 基 函 数 , 且 有 : BS11 (t ) = (1 + λi − 2λi ti ) E0,3 (t ) + E1,3 (t ) j j k k −i (−1) Ck +1 (u + n − i − j ) +(1 − λi + 2λi ti ) E2,3 (t ) + λi +1ti +1 E3,3 (t ) Ei ,k (u ) = ∑ , i = 0,1,L k (2) k! j=0 = λ BS ( t ) i (1 − ti )( E2,3 (t ) − E0,3 (t )) + (1 + λi +1 − 2λi +1ti +1 )E 3,3 (t ) 12 当 k = 3 时 ,相 应 的 三 次 均 匀 B样 条 曲 线 的 分 段 表 示 为 BS13 (t ) = −λi +1 (1 − ti +1 )E 3,3 (t ) 3 BS 20 (t ) = −λi ti E1,3 (t ) rl (u ) = ∑ Ei ,3 (u )Vi +l (0 ≤ u ≤ 1, l = 0,1, L , n − 3) (3) i =0 BS 21 (t ) = E0,3 (t ) + (1 − λi + 2λi ti ) E1,3 (t ) + λi +1ti +1 E2,3 (t ) 其 中 Ei ,3 (u ) 是 均 匀 三 次 B 样 条 曲 线 的 基 函 数 。 BS 22 (t ) = λi (1 − ti )E1,3 (t ) + (1 + λi +1 − 2λi +1ti +1 )E 2,3 (t ) + E3,3 (t ) BS (t ) = −λ (1 − t )E (t ) 3 插值三次均匀B样条曲线 2,3 i +1 i +1 23 在 平 面 上 给 定 点 列 Pi (i = 1, 2,L , n) , 我 们 的 方 法 是 构 造 均 匀 三 BS30 (t ) = −λi ti E0,3 (t ) 次 B 样 条 曲 线 的 deBoor 点 列 Vi ,使 得 由 新 的 deBoor 点 列 生 成 的 三 次 BS31 (t ) = (1 − λi + 2λi ti ) E0,3 (t ) + λi +1ti +1 ( E1,3 (t ) − E3,3 (t )) 均匀 B样条曲线插值 Pi ,进而构造一组插值基函数 ,插值曲线由所构 BS32 (t ) = λi (1 − ti ) E0,3 (t ) + (1 + λi +1 − 2λi +1ti +1 ) E1,3 (t ) 造的基函数和给定的型值点直接生成 , 并且是 C1 连续的和保形的。 + E2,3 (t ) + (1 − λi +1 + 2λi +1ti +1 )E 3,3 (t ) 在首末端点处各取两个延伸点分别为: BS33 (t ) = λi +1 (1 − ti +1 )( E3,3 (t ) − E1,3 (t )) P0 = P 1 + (P 1 − 2P 2 +P 3 ) / 4,P n +1 = P n + (P n − 2P n−1 + P n− 2 ) / 4 设给定的控制多边形 < P ,下 n− 1)确 定 λi 的 范 围 , 使 得 插 值 三 次 B 样 条 曲 线 是 保 形 的 。 面 当 1, P 2 ,L , P n > 的 边 矢 量 为 ai = P i +1 − P i (i = 1, 2, ai = Pi − Pi (i = 1, 2,L, n −1) , 则 a0 = (a1 − a2 ) / 4 , a0 × a1 = a1 × a2 / 4 , 可 知 由 P0 , P1 , ai −1 × ai 和 ai × ai+1 有相同的方向 ,则 Pi −1 , Pi , Pi +1 , Pi + 2 构成的三边形是凸 P2 , P3 构 成 的 三 边 形 是 凸 的 , 过 P 的 插 值 曲 线 没 有 拐 点 ,同 理 可 的。 易知过 Pi 以 Pi 点处的切矢 Ti 为方向的切线与过 Pi +1 以 Pi +1 点处的 1, P 2 证 Pn− 2 , Pn−1 , Pn , Pn +1 构 成 的 三 边 形 也 是 凸 的 , 从 而 可 保 证 插 值 曲 线 切矢 Ti +1 为方向的切线相交 , 其交点记为 Pi ∗ = Pi + ai × ai +1 / Ti × Ti +1 Ti 。 在首尾不会出现多余的拐点。 当 ai −1 × ai 和 ai × ai+1 方 向 相 反 时 , 则 Pi −1 , Pi , Pi +1 , Pi + 2 构 成 的 三 边 形 有 设 待 构 造 的 保 凸 均 匀 三 次 B样 条 插 值 曲 线 在 给 定 的 控 制 多 边 一 条 拐 向 边 , 这 时 记 Pi ∗ = ( Pi + Pi +1 ) / 2 , 取 形的每个顶点 Pi (i = 1, 2,L , n) 处 的 切 矢 量 为 Ti = ti ai −1 + (1 − ti ) ai ( 式中 0 < λi < Pi * − Pi / T , 0 < λi +1 < Pi * − Pi +1 / Ti +1 (5) ti 是 切 矢 量 调 节 参 数 ) 。 则可保证 构成的三边形与 P , P , P , P 构成 V2i −1 , V2i , V2i+1 ,V2i +2 i −1 i i +1 i+2 对 于 相 邻 四 点 Pi −1 , Pi , Pi +1 , Pi + 2 , 下 面 构 造 deBoor 点 的三边形有相同的凸性。 由 B样 条 曲 线 的 变 差 减 少 性 质 知 :当 三 边 ; ; ; V2i−1 = P − λ T V = P + λ T V = P − λ T V = P + λ T i i i 2i +2 i +1 i +1 i +1 2i i i 2 i +1 i +1 i +1 i +1 形 < Pi −1 , Pi , Pi +1 , Pi + 2 > 是 凸 多 边 形 时 , P i (t ) 也 是 凸 的 , 否 则 有 唯 一 把 Ti 及 ai = Pi +1 − Pi 代 入 上 式 得 到 个拐点。 因 此 当 λi 按 (5) 式 取 值 时 , 所 构 造 的 曲 线 是 保 形 的 。 由本文 算 法 得 到 的 C1 保 形 均 匀 三 次 插 值 曲 线 如 图 1 。
相关文档
最新文档