B-spline Curves 學習之B樣條曲線的導數(8)

                        Derivatives of a B-spline Curve

  儘管B-樣條曲線比貝塞爾曲線複雜得多,它們的導數很相似。假設一個B-樣條曲線定義如下:

  

  每個基函數的導數可計算如下:

  

  將這些導數代回曲線方程得到下列結果:

  

  其中 Qi定義如下:

  

  因此,一個B-樣條曲線的導數是另一個p - 1次B-樣條曲線,在原來的節點向量上,而有新的n 個控制點Q0, Q1, ..., Qn-1。

  如果原始的clamped節點向量是u0(p+1), up+1, ..., um-p-1, um(p+1),那麼移動第一個和最後一個節點使得第一個和最後一個節點重複度變成, p 而不是p+1,我們有一個m - 1 個節點u0(p), up+1, ..., um-p-1, um(p)的新節點序列。那麼,可證明在原來節點序列計算的Ni+1,p-1(u) 等於在新節點序列上的Ni,p-1(u)。因此,在新節點序列上的一個B-樣條曲線的導數如下:

  

  下面左圖是一個5次的B-樣條曲線。它的導數曲線,其是一個由新 n 個控制點定義的 p-1次B-樣條曲線,顯示在中圖。如同貝塞爾曲線的情況,這是一個原始曲線的矢端曲線(hodograph)。下面右圖顯示的是控制折線刪除後的矢端曲線(hodograph)。

         

    Clamped B-樣條曲線

  我們知道一個clamped B-樣條曲線經過第一個和最後一個控制點。實際上,它也與控制折線的第一邊和最後一邊相切。回憶上面的p 次B-樣條曲線C(u)的導數是

  

  其節點向量通過將第一個節點和最後一個節點從原始節點序列去掉獲得。因此,第一個(和最後一個)節點的重複度是p,因此,上面的 p-1次B-樣條曲線是clamped。因爲一個clamped B-樣條曲線經過它的第一個和最後一個控制點,我們有C'(0) = Q0 和 C'(1) = Qn-1。 因爲,對i = 0有 u0 = .... = up = 0 ,所以我們有

  

  因此,在C'(0)上的切向量與從P0 到 P1 的向量有相同的方向,而 C(u) 與第一邊相切。基於同樣的推理,我們有下列結果:

   

    因此,C(u) 與最後一邊相切。總之,我們有下列重要事實: 

  

  更高階導數 

  因爲一個B-樣條曲線的一階導數是另一個B-樣條曲線,所以可以毫無困難地遞歸應用該技術來計算更高階導數。

  

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章