B-spline Curves 學習之前言(1)

 B-spline Curves Notes

  本 教程是關於B-樣條曲線(B-spline Curves)的教程。B-樣條曲線在計算機視覺(computer vision ),計算機圖形學(Computer Graphics ),計算機輔助設計(Computer-Aided Design ),計算幾何(Computational Geometry ) ,可視化(Visualization)等許多領域有着廣泛應用。

        本教程翻譯自C.-K. Shene博士的CS3621 Introduction to Computing with Geometry Notes的第6部分B-spline Curves。(C.-K. Shene博士是a Professor at  Department of Computer Science ,Michigan Technological University)。

1. B樣條曲線——動機

 考慮設計一個花瓶的剖面圖。下圖左邊是11次(degree)的貝塞爾曲線;但是它很難彎曲瓶頸到線段 P4P5。當然,我們可以在這個線段附近增加控制點來增加該區域的權重。但是這會增加曲線的次數(degree)。許多情況下,不值得使用如此高次 (degree)的多項式。

  

    如前面討論過的貝塞爾曲線的導數 ,我們可以將兩個貝塞爾曲線連接起來。只要第一條曲線的最後一段和第二條曲線的第一段有相同方向,我們至少可以獲得 G1連續性,因爲切向量有相同方向但可能有不同的長度(即,如果長度相同,它就是C1 連續的)。上邊中間圖使用了這個思想。它有3個3次貝塞爾曲線段,連接點用黃色矩形框標記。這說明有滿足 G1 連續條件的多重低階貝塞爾曲線段,我們可以設計出複雜形狀。但是,保持 G1 連續條件會是乏味和不受歡迎的。

   有沒有可能我們仍用更低階曲線段而不用考慮 G1 連續條件?

  B-樣條曲線是貝塞爾曲線的推廣且正是爲了解決這個問題的。上邊右圖是一個8控制點的3次B-樣條曲線。實際上,由5條3次貝塞爾曲線段連接起來形成了由 控制點定義的B-樣條曲線。 上圖中,那些小點把B-樣條曲線劃分爲貝塞爾曲線段。可以像貝塞爾曲線那樣移動控制點來修改曲線的形狀。我們也可以修改曲線的細分 (subdivision)。因此B-樣條曲線有更高階曲線設計的自由度。

  直接細分(Subdividing)曲線是很困難的。因此,我們細分曲線的定義域。因此,如果曲線的定義域是[0,1],這個閉區間被稱爲節點(knots)的點細分而成。設這些節點是 0 <= u0 <= u1 <= ... <= um <= 1。那麼點C(ui)的曲線細分如下圖所示,因此,修改[0,1]的細分會改變曲線的形狀。

  

  總之,爲了設計一個B-樣條曲線,我們需要一系列的控制點,一系列的節點和一系列的係數,每個係數對應一個控制點,所以所有曲線段連接在一起滿足某個連續 條件。係數的計算可能是最複雜的步驟因爲它們必須保證某個連續條件。幸運的是,這個計算在本課程中不需要。我們只需要知道相關特性用於B-樣條曲線的推理就可以了。

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