B 樣條曲線 動機 Motivation

2021-05-17 20:27:16 字數 1220 閱讀 5729

b-樣條曲線——動機

motivation

定義 考慮設計乙個花瓶的剖面圖。下圖左邊是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-樣條曲線的推理就可以了。 

譯註:

本文翻譯是「b-樣條曲線(b-spline curves)教程」中的一部分,其餘翻譯部分見「b-樣條曲線(b-spline curves)教程目錄」。

「b-樣條曲線(b-spline curves)教程」是翻譯自c.-k. shene博士的cs3621 introduction to computing with geometry notes的第6部分「b-spline curves」。

。本文首發「博士數學家園 」

樣條曲線 B樣條曲線求解及C 實現

功能 根據引數u值和k 大小為階數值 與節點向量,計算第i個k次b樣條基數 輸入引數 u 引數值 k 大小值為階數 i 第i個k次b樣條的支撐區間左端節點的下標 anode為節點向量。輸出引數 返回函式值。double getbasefunval double u,int i,int k,vecto...

b樣條和三次樣條 樣條曲線

最近在學習軌跡規劃中的軌跡生成,涉及到樣條曲線方面的知識,總結一下。曲線的平滑性和相應的平滑性的評判準則相關,在 1 中,作者採用曲率的平方和曲率導數的平方作為評判準則 其中 是路徑點的方向角。最小化這兩個準則的軌跡分別是圓弧和三階螺旋線,並對在對稱和不對稱情況下如何生成路徑進行了分析,事實表明三階...

B 樣條曲線的導數

回目錄 定義如下 如果原始的clamped節點向量是u 0 p 1 u p 1,u m p 1,u m p 1 那麼移動第乙個和最後乙個節點使得第乙個和最後乙個節點重複度變成,p 而不是p 1,我們有乙個m 1 個節點u 0 p u p 1,u m p 1,u m p 的新節點序列。那麼,可證明在原...