B 樣條基函式的金字塔演算法實現(通式)

2021-04-12 12:44:55 字數 1118 閱讀 9847

/*

@remark                    根據計算b-樣條基函式,金字塔演算法通式

@para num                多項式的階數

@para t                    引數

@para sectnum            b-樣條分段的段號

@para polynomialsvalues    生成的多項式係數

@return                    生成正確返回true,否則返回flase

*/bool bsplinebase ( int stage, double t, int sectnum, std::deque& polynomialsvalues )

// 左邊緣單獨處理

cpl = tcurleft - tcurright;

value = normalize( parentl * (tcurleft-t) / cpl, 4 );

polynomialsvalues.push_back ( value );

// 處理中間部分

tcurleft += delta;

for ( j=0; j// 右邊緣單獨處理

tcurleft -= delta;

cpr = tcurleft - tcurright;

value = normalize( parentr * (t - tcurright) / cpr, 4 );

polynomialsvalues.push_back ( value );

// 刪除上一行的內容

polynomialsvalues.erase ( polynomialsvalues.begin(), polynomialsvalues.begin()+oldlength );        

// 改變左右係數

tcurleft = (3+sectnum) * delta;

tcurright = tcurleft - (i+2)*delta;

}return true;

}三次b樣條:

B樣條基函式的定義和性質

定義 令u 是一個單調不減的實數序列,即ui ui 1,i 0,1,m 1。其中,ui稱為節點,u稱為節點向量,用ni,p u 表示第i個p次 p 1階 b樣條基函式,其定義為 由此可知 1 ni,0 u 是一個階梯函式,它在半開區間u ui,ui 1 外都為零 2 當p 0時,ni,p u 是兩個...

B樣條函式

給定節點ni 0,記其上分片 k 次多項式 k 1次連續可導函式構成的空間為 s 顯然任意s s 應有s x i 0k cixi 1k i 1 n 1d i x i k 其中 max 從此可看出 dims k n,然而這個形式的基底為全域性的,其支撐並不區域性,故無法避免大數加小數的誤差。以下尋找 ...

利用openCV畫出B樣條基函式的曲線

最近要做雙三次b樣條插值 bicubic 從基礎的三次b樣條開始看起,但是網上基本沒有介紹b樣條基函式的文章,所以在這裡寫下來,方便他人蔘考。對於三次均勻的b樣條曲線,其遞推公式如下 一般的b樣條用的最多的是三次b樣條曲線,也就是k 4 時的曲線。公式太長,我懶得打,可以在程式裡面看。下面用open...

B樣條的學習

clc clear close point 9.036145,21.084337,37.607573,51.893287,61.187608 51.779661,70.084746,50.254237,69.745763,49.576271 n size point,2 1 p 4 nodevect...

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 的新節點序列。那麼,可證明在原...