B-样条曲线:开曲线

B-样条曲线:开曲线

B-spline Curves: Open Curves

                                                                                                                  

上一页定义               回目录                        下一页 闭曲线   

 


 

如以前提到过的,如果第一个和最后一个节点没有重复度 p+1,其中 p B-样条曲线的次数(degree),曲线将不会分别与第一个控制点和最后一个控制点的第一边和最后一边相切。 该曲线是开(open B-样条曲线。在这种情况下,我们应关注一个额外的限制。在前页 我们展示了一个基函数的计算实例,使用节点向量U = { 0, 0.25, 0.5, 0.75, 1 }, 其中 m = 4,如果基函数是1次的  (即, p = 1), 那么有三个基函数N0,1(u), N1,1(u) N2,1(u) 如下图所示。

 

 

 

因为该节点向量不是 clamped,第一个和最后一个节点区间(即,[0, 0.25) [0.75, 1)) 只有一个非零基函数而第二和第三节点区间(即, [0.25, 0.5) [0.5, 0.75)) 有两个非零基函数。回忆 B-样条基函数重要性质里的在一个节点区间[ui, ui+1)有至多p+1p 次非零基函数。因此,在这个例子中,节点区间[0,0.25) [0.75,1)没有基函数的完全支持"full support")。一般来说,对次数p,区间 [u0, up) [um-p, um] 不会有基函数的完全支持 "full support" ),当B-样条曲线是开曲线时被忽略。因此,我们有下列重要的注意事项:

 

对开(openB-样条曲线,定义域是[up, um-p]

考虑一个由14个控制点(即,n = 13)定义的 6 (即,p = 6) B-样条曲线。其节点的数目是 21 (即, m = n + p + 1 = 20)。如果节点向量是均匀的, 节点是0, 0.05, 0.10, 0.15, …, 0.90, 0.95 1.0 开(open曲线定义在[up, un-p] = [u6, u14] = [0.3, 0.7]上且与第一边和最后一边不相切。下面左图显示了曲线而右图给出了B-样条基函数。

 

图片[1]-B-样条曲线:开曲线-卡核

 尽管在两端的节点区间没有被利用,B-样条曲线仍然是由所有控制点定义的。如在 B-样条基函数页所讨论的最多有p+1 个基函数Ni-p,p(u), Ni-p,p+1(u), …, Ni,p(u) 在节点区间 [ui, ui+1)上非零。因此,在[up, ui+1)上有 p+1个非零函数: N0,p(u), N1,p(u), …, Np,p(u)。这是一个数( "full" count)。注意 N0,p(u) [up, up+1) 有它的尾巴,因此,控制点P0 对开(openB-样条曲线的贡献小于大多数其他控制点。一个相似的参数可用来证明 Pn 也包括在曲线的定义中。

让我们用一个实例来说明一个开曲线与clamped曲线之间的变化。 我们以一个由9个控制点(即, n = 8)和一个均匀节点向量{ 0, 1/13, 2/13, 3/13, …, 12/13, 1 }定义的4次开B-样条曲线为开始。如果我们将第二个节点 1/13 改变到 0 使得0 为双重节点,图中黄色曲线。实际上,该曲线和0是简单节点的原始曲线几乎是一样的。现在,如果我们把第三个节点2/13改变到0使得0是重复度为3的节点,则结果是红色曲线。如果第四个节点 3/13 改变到0 (重复度 4),产生的曲线是蓝色的。如你所看到的,这三条开曲线彼此之间没有很大不同。现在,让我们把第五个节点4/13改变到0. 现在0是一个重复度5(即, p+1)的节点,曲线不仅通过第一个控制点而且与控制折线(ployline)(即,clamped)的第一边相切。如你从图中看到的,曲线的形状剧烈地变化,将它的一个端点移到第一个控制点。如果我们把最后5个节点移到1也会发生同样变化。

 

 

 

                                                                                                                  

上一页定义               回目录                        下一页闭曲线     

                                                                                                                           

译注: 

    1.  本文翻译是“B-样条曲线(B-spline Curves)教程”中的一部分,其余翻译部分见“B-样条曲线(B-spline Curves)教程目录”。
    2.  “B-样条曲线(B-spline Curves)教程”是翻译自C.-K. Shene博士的CS3621 Introduction to Computing with Geometry Notes的第6部分“B-spline Curves”。
    3. 本文原文地址:B-spline Curves: Open Curves   。
    4. 本文首发“博士数学家园

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片