国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

醫(yī)院網(wǎng)站建設(shè)情況電商推廣平臺(tái)

醫(yī)院網(wǎng)站建設(shè)情況,電商推廣平臺(tái),虹口做網(wǎng)站價(jià)格,廣西網(wǎng)站建設(shè)介紹文章目錄0.參考1.問(wèn)題起源與插值法的曲線擬合1.1.問(wèn)題起源1.2.拉格朗日插值1.3.“基”的概念1.4.插值存在的Runge現(xiàn)象2.貝塞爾曲線2.1.控制點(diǎn)的思想2.2.由控制點(diǎn)生成貝塞爾曲線2.3.多個(gè)控制點(diǎn)時(shí)的貝塞爾曲線公式2.4.貝塞爾曲線的遞推公式2.5.貝塞爾曲線的性質(zhì)3.B樣條曲線3.1.B樣…

文章目錄

  • 0.參考
  • 1.問(wèn)題起源與插值法的曲線擬合
    • 1.1.問(wèn)題起源
    • 1.2.拉格朗日插值
    • 1.3.“基”的概念
    • 1.4.插值存在的Runge現(xiàn)象
  • 2.貝塞爾曲線
    • 2.1.控制點(diǎn)的思想
    • 2.2.由控制點(diǎn)生成貝塞爾曲線
    • 2.3.多個(gè)控制點(diǎn)時(shí)的貝塞爾曲線公式
    • 2.4.貝塞爾曲線的遞推公式
    • 2.5.貝塞爾曲線的性質(zhì)
  • 3.B樣條曲線
    • 3.1.B樣條曲線的基本概念
    • 3.2.對(duì)B樣條的疑問(wèn)
    • 3.3.B樣條遞推公式的過(guò)程
    • 3.4.B樣條引入節(jié)點(diǎn)帶來(lái)的好處——局部性
    • 3.5.為什么 m = n + k + 1 ?
    • 3.6.為什么 階數(shù)(Order) = 次數(shù)(Degree) + 1?
    • 3.7.B樣條曲線的特點(diǎn)
    • 3.8.B樣條曲線的歷史
  • 4.B樣條曲線的矩陣表達(dá)式及在SLAM中的應(yīng)用
    • 4.1.均勻B樣條的矩陣表達(dá)式
    • 4.2.均勻B樣條表示李群空間的矩陣表達(dá)式
    • 4.3.B樣條曲線用于SLAM的軌跡表示

0.參考

貝塞爾(Bezier)曲線與B樣條:這個(gè)視頻講的很好,尤其是對(duì)樣條曲線的兩種理解方式上,會(huì)對(duì)后面B樣條曲線性質(zhì)的分析有很大的幫助。本文在前面的部分也會(huì)較多的參考這個(gè)視頻中講解的內(nèi)容。但是視頻后面講解B樣條曲線的時(shí)候稍微簡(jiǎn)略了一點(diǎn),因此本文給出我自己的理解。

1.問(wèn)題起源與插值法的曲線擬合

1.1.問(wèn)題起源

樣條曲線起源于一個(gè)常見(jiàn)問(wèn)題,即已知若干點(diǎn)的條件下,如何得到通過(guò)這些點(diǎn)的一條光滑曲線?

一個(gè)簡(jiǎn)答的方法是對(duì)曲線進(jìn)行 插值:在原有數(shù)據(jù)點(diǎn)上進(jìn)行填充生成曲線,曲線必經(jīng)過(guò)原有數(shù)據(jù)點(diǎn)。

在這里插入圖片描述在這里插入圖片描述

1.2.拉格朗日插值

當(dāng)有多個(gè)點(diǎn)的時(shí)候,可以使用拉格朗日插值法得到插值的曲線函數(shù)表達(dá)式:

在這里插入圖片描述
其中每個(gè)函數(shù) LkL_kLk?稱為拉格朗日插值基函數(shù)。注意這個(gè)的概念,對(duì)于后面理解貝塞爾曲線和B樣條曲線非常有幫助。

1.3.“基”的概念

我們之前學(xué)過(guò)的知識(shí)中,有很多地方用到了 的概念,比如下面的內(nèi)容:

  • 線性代數(shù):向量的線性組合就是在對(duì)向量空間的基向量給不同的權(quán)重相加,然后得到新的向量。
  • 微積分:Taylor展式,Fourier級(jí)數(shù):他們都是有基函數(shù),然后最終我們的函數(shù)是由很多這種基函數(shù)組成的
  • Lagrange插值法:一組基的線性組合:前面剛剛提到,我們插值得到的函數(shù)其實(shí)是由一組基函數(shù)組合來(lái)的。

1.4.插值存在的Runge現(xiàn)象

插值存在一些問(wèn)題,比如Runge現(xiàn)象。這是因?yàn)椴逯狄蟛逯岛瘮?shù)必須經(jīng)過(guò)所有的插值點(diǎn),導(dǎo)致非線性程度很嚴(yán)重。

為了解決這個(gè)問(wèn)題,并且考慮到人們往往想要一個(gè)比較光滑的曲線,而并不要求曲線通過(guò)所有點(diǎn),所以擬合就產(chǎn)生了。
在這里插入圖片描述在這里插入圖片描述

2.貝塞爾曲線

2.1.控制點(diǎn)的思想

一個(gè)簡(jiǎn)單且行之有效的方法是,把這些點(diǎn)作為限制點(diǎn),然后在這些限制點(diǎn)中放置一條具有彈性的金屬片,最后金屬片繞過(guò)這些點(diǎn)后的最終狀態(tài)即為所需曲線。而最終得到的形狀曲線,就是樣條曲線。這也是該名字的由來(lái),其中金屬片就是樣條,形成的曲線就是樣條曲線。在這里插入圖片描述
注意:上圖中的藍(lán)色圓形可以變的很大,這樣生成的樣條曲線就離圓心很遠(yuǎn)了,所以就是明顯不通過(guò)這些圓心點(diǎn)的。如果把圓的半徑縮小成0,那么結(jié)果就變成插值了。

2.2.由控制點(diǎn)生成貝塞爾曲線

步驟如下:

  1. 先由前2個(gè)控制點(diǎn),按照 ttt 的比例生成一個(gè)中間過(guò)程點(diǎn) PiP_iPi?
    Pi=(1?t)P0+P1P_i = (1-t) P_0 + P_1Pi?=(1?t)P0?+P1?
  2. 再由后2個(gè)控制點(diǎn),按照 ttt 的比例生成一個(gè)中間過(guò)程點(diǎn) PjP_jPj?
    Pj=(1?t)P1+P2P_j = (1-t) P_1 + P_2Pj?=(1?t)P1?+P2?
  3. 對(duì)兩個(gè)中間過(guò)程點(diǎn),按照 ttt 的比例生成最后我們要的曲線上的一個(gè)點(diǎn) PxP_xPx?。
    Px=(1?t)Pi+PjP_x = (1-t)P_i + P_jPx?=(1?t)Pi?+Pj?

最后,通過(guò)遍歷所有的比例值 t∈[0,1]t \in [0, 1]t[0,1],我們就可以得到貝塞爾曲線上的所有點(diǎn),也就是得到了整條貝塞爾曲線。
在這里插入圖片描述
如果控制點(diǎn)的個(gè)數(shù)比3個(gè)多呢?那么就要不斷重復(fù)上面2個(gè)點(diǎn)生成1個(gè)中間點(diǎn)的過(guò)程,直到最后只剩下一個(gè)點(diǎn),這個(gè)點(diǎn)就是曲線上的點(diǎn)。所以當(dāng)有多個(gè)控制點(diǎn)的時(shí)候,只需要對(duì)上面的過(guò)程進(jìn)行多次,最后得到一個(gè)曲線上的點(diǎn)PxP_xPx?,然后改變比例ttt,就得到整條貝塞爾曲線了。

2.3.多個(gè)控制點(diǎn)時(shí)的貝塞爾曲線公式

在這里插入圖片描述
重要:對(duì)貝塞爾曲線公式的兩種理解:

  1. 基函數(shù) 的角度理解:貝塞爾曲線前面的權(quán)重WWW就是插值基函數(shù),它是和ttt有關(guān)的函數(shù),所以他是有次數(shù)的,比如下圖所示的就是關(guān)于ttt為3次的基函數(shù)。后面的點(diǎn)PPP就相當(dāng)于插值點(diǎn),也就是給基函數(shù)的權(quán)重。但是貝塞爾曲線和拉爾朗日插值的不同之處在于,貝塞爾曲線的結(jié)果并不全都通過(guò)這些插值點(diǎn)。

也就是說(shuō),這種理解方式,基函數(shù),也就是關(guān)于ttt的一些函數(shù),而 權(quán)重 則是這些 控制點(diǎn)

這種理解方式就是微積分的理解方式,也就是泰勒展開(kāi)、級(jí)數(shù)的理解方式,因?yàn)樽罱K我們的曲線是可以用一個(gè)函數(shù)表示的,而這個(gè)函數(shù)是由 基函數(shù) 施加不同的 權(quán)重 得到的,而這個(gè)權(quán)重就是各個(gè)控制點(diǎn)的坐標(biāo)值。

在這里插入圖片描述
2. 從 控制點(diǎn) 的角度理解:
在這里插入圖片描述
也就是說(shuō),這種理解方式,基向量,也就是控制點(diǎn);而 權(quán)重 則是關(guān)于 ttt的一些函數(shù),對(duì)于任意一個(gè) ttt確定了之后,我們就可以把函數(shù)值算出來(lái),就得到了一個(gè)具體的權(quán)重值。然后把權(quán)重值施加到控制點(diǎn)上,我們就得到了曲線上的一個(gè)具體的點(diǎn)。

這種理解方式就是線性代數(shù)的理解方式,也就是對(duì)向量空間的基向量進(jìn)行線性組合的理解方式。這里相當(dāng)于把整個(gè)曲線分成一個(gè)個(gè)的點(diǎn)來(lái)看,對(duì)于每一個(gè)點(diǎn)來(lái)說(shuō),它對(duì)應(yīng)著一個(gè)確定的ttt值,這個(gè)確定的ttt值帶入函數(shù)WWW里面就可以得到確定的權(quán)重。然后利用這個(gè)確定的權(quán)重對(duì)控制點(diǎn)進(jìn)行線性組合,就得到了曲線上的一個(gè)點(diǎn)。最后遍歷所有的ttt值,我們就得到了曲線上的所有點(diǎn),也就是得到了整條貝塞爾曲線。

2.4.貝塞爾曲線的遞推公式

在這里插入圖片描述
其實(shí)這個(gè)很簡(jiǎn)單,因?yàn)榍懊嫖覀冎v解多個(gè)控制點(diǎn)的貝塞爾曲線的具體做法時(shí),其實(shí)就是按照遞推的公式來(lái)講解的它的思路,只不過(guò)是寫(xiě)成最終的公式的時(shí)候我們可以寫(xiě)出一個(gè)最終的結(jié)果。而遞推公式就是描述了一步步求中間點(diǎn)的過(guò)程。

2.5.貝塞爾曲線的性質(zhì)

  • Bezier曲線是BSpline的特例
  • 曲線總是通過(guò)第一個(gè)和最后一個(gè)點(diǎn)
  • 曲線在始點(diǎn)處的切線落在前兩個(gè)控制的連線上,曲線在終點(diǎn)處的切線落在最后兩個(gè)控制點(diǎn)的連線上
  • 改變其中任何一個(gè)點(diǎn),整條曲線都會(huì)隨之改變。這個(gè)很容易發(fā)現(xiàn),以為如果從 基函數(shù) 的角度來(lái)看就會(huì)發(fā)現(xiàn),每個(gè)基函數(shù)的定義域都是 t∈[0,1]t \in [0, 1]t[0,1]。所以一個(gè)控制點(diǎn)改變了之后,它會(huì)影響整個(gè)曲線中這個(gè)控制點(diǎn)對(duì)應(yīng)的 基函數(shù) 的函數(shù)值分量,從而導(dǎo)致整條曲線從頭到尾都會(huì)受到影響。
  • 貝塞爾曲線冪次 = 控制點(diǎn)個(gè)數(shù) - 1。 對(duì)于一條復(fù)雜的曲線,如果使用一個(gè)貝塞爾曲線來(lái)插值獲得目標(biāo)曲線,就需要通過(guò)增加控制點(diǎn)來(lái)進(jìn)行插值,需要的計(jì)算也越復(fù)雜。冪次的問(wèn)題很好理解,因?yàn)槊可梢粋€(gè)中間點(diǎn)冪次就上升一次。
    因此對(duì)于復(fù)雜曲線,不要求用n-1次曲線,而是讓次數(shù)低一點(diǎn),經(jīng)常使用三次貝塞爾曲線一段一段地拼接成目標(biāo)曲線,如Ps 或 Ai 中使用鋼筆工具畫(huà)出物體輪廓所做的那樣。 如果使用這種方法,確保最終整體曲線一次光滑的條件是在連接點(diǎn)出兩側(cè)的斜率相等,即連接點(diǎn)和其兩側(cè)控制點(diǎn)共線。

3.B樣條曲線

3.1.B樣條曲線的基本概念

生成曲線,本質(zhì)上就是找一組基函數(shù),然后用各個(gè)控制點(diǎn)當(dāng)權(quán)重進(jìn)行線性組合。或者理解為把控制點(diǎn)作為基向量,然后用函數(shù)當(dāng)權(quán)重,給定一個(gè)ttt帶入函數(shù)中就得到一個(gè)具體的權(quán)重值,然后就可以得到曲線上一個(gè)點(diǎn),最后遍歷所有的比例ttt就可以得到曲線上的所有點(diǎn)。

下面給出B樣條曲線的一些基本概念,然后后面再給出詳細(xì)的解釋。
在這里插入圖片描述舉例說(shuō)明如下:

在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述

3.2.對(duì)B樣條的疑問(wèn)

前面的概念中,不太清楚的就是 控制點(diǎn)(Control Points)節(jié)點(diǎn)(Knots) 這兩個(gè)概念。而且前面的講解中一開(kāi)始說(shuō)了節(jié)點(diǎn)的個(gè)數(shù)和控制點(diǎn)無(wú)關(guān),是自己選取的;但是后面又說(shuō)控制點(diǎn)和節(jié)點(diǎn)的個(gè)數(shù)必須要滿足的關(guān)系是 m=n+k+1m = n+k+1m=n+k+1,這個(gè)屬實(shí)有點(diǎn)讓人疑惑。

另外一個(gè)讓人不太清楚的就是 次(Degree)階(Order) 的區(qū)別,實(shí)際上 階數(shù) = 次數(shù) + 1。

直接解釋這兩個(gè)問(wèn)題是無(wú)法解釋的,因?yàn)檫@個(gè)必須從B樣條的原理觸發(fā),當(dāng)明白了B樣條的原理,自然就可以明白為什么B樣條中除了控制點(diǎn)還會(huì)有節(jié)點(diǎn),然后才可以推導(dǎo)前面的兩個(gè)關(guān)系式。

3.3.B樣條遞推公式的過(guò)程

我們直接從最終的遞推形式的kkk次B樣條基函數(shù)出發(fā),來(lái)解釋B樣條的思想。所以這里我們把曲線的樣條擬合問(wèn)題變成了對(duì) 基函數(shù) 的線性組合問(wèn)題,線性組合的權(quán)重變成了各個(gè)點(diǎn)的坐標(biāo)值。

有了控制點(diǎn),為什么還要使用節(jié)點(diǎn)呢?貝塞爾曲線只用控制點(diǎn)就可以了啊?其實(shí)這個(gè)就是為了改進(jìn)貝塞爾曲線只有全局特性、沒(méi)有局部特性的問(wèn)題,也就是貝塞爾曲線只要修改了一個(gè)控制點(diǎn)之后,即使基函數(shù)不變,整個(gè)曲線也都會(huì)被修改,因?yàn)樗幕瘮?shù)的定義域是在t∈[0,1]t \in [0, 1]t[0,1] 的整個(gè)區(qū)間上的。而B(niǎo)樣條加入節(jié)點(diǎn),目的就是為了給擬合的曲線增加局部性,從而實(shí)現(xiàn)改變一個(gè)控制點(diǎn)只會(huì)影響整個(gè)擬合曲線的一部分,而不會(huì)影響整個(gè)曲線。而實(shí)現(xiàn)的關(guān)鍵就是插入節(jié)點(diǎn),讓控制點(diǎn)只能作用到部分節(jié)點(diǎn)區(qū)間上,而不會(huì)作用到整個(gè)節(jié)點(diǎn)區(qū)間上。

貝塞爾曲線的基函數(shù)區(qū)間定義域是在t∈[0,1]t \in [0, 1]t[0,1] 的,B樣條曲線就在這個(gè)區(qū)間上插入很多節(jié)點(diǎn),從而把整個(gè)區(qū)間分成很多小的區(qū)間。如下圖所示,假設(shè)我把區(qū)間[0,1][0, 1][0,1]分成8個(gè)子區(qū)間,那么我要插入8+1=98+1=98+1=9個(gè)節(jié)點(diǎn),假設(shè)他們的序號(hào)分別是0?80-80?8。
在這里插入圖片描述
根據(jù)前面B樣條曲線的遞推公式(這個(gè)公式為什么是這樣大家就不要追究了,這種結(jié)論大佬發(fā)現(xiàn)了直接用就行了):
在這里插入圖片描述

可以發(fā)現(xiàn),在這些節(jié)點(diǎn)區(qū)間內(nèi)的基函數(shù)都是0次的,也就是他們?cè)诟髯缘膮^(qū)間內(nèi)都是1,不在自己區(qū)間范圍內(nèi)的都是0,并且這個(gè)取值和ttt是無(wú)關(guān)的,所以這個(gè)區(qū)間內(nèi)的基函數(shù)都是0次的,如下圖所示。注意圖中的Bi,0B_{i, 0}Bi,0?表示的就是當(dāng)前的樣條基函數(shù)都是0次的,然后iii表示的是哪個(gè)區(qū)間的樣條基函數(shù),因?yàn)槲覀冇?個(gè)點(diǎn),所以有8個(gè)樣條基函數(shù),注意下圖中的索引都是從0開(kāi)始的。
在這里插入圖片描述

那么B樣條曲線的遞推公式就是在說(shuō):可以使用兩個(gè)相鄰的小區(qū)間組成一個(gè)大區(qū)間,同時(shí)基函數(shù)次數(shù)增加1。如下圖所示,最開(kāi)始的子區(qū)間里面的B樣條函數(shù)都是0次的,而由于B樣條的遞推公式中組合兩個(gè)相鄰區(qū)間的時(shí)候前面的系數(shù)是帶有 ttt,而且一個(gè)是ttt,另一個(gè)是1?t1-t1?t實(shí)際公式不是這樣,但是也大概是這個(gè)思想)。所以組合了兩個(gè)區(qū)間之后,在這個(gè)新的區(qū)間中的基函數(shù)就變成1次的了。同理新區(qū)間中的樣條基函數(shù)Bi,1B_i,1Bi?,1表示樣條基函數(shù)都是1次的,而iii表示它的哪個(gè)區(qū)間的樣條基函數(shù)。

在這里插入圖片描述

注意

  • 圖中為了方便畫(huà)圖,合并之后的區(qū)間和之前的區(qū)間長(zhǎng)度畫(huà)成一樣大的了,實(shí)際上合并之后的區(qū)間長(zhǎng)度應(yīng)該是翻倍的。
  • 另外圖中也是為了方便表示出兩個(gè)區(qū)間合成一個(gè)區(qū)間的結(jié)果,把區(qū)間畫(huà)的而有點(diǎn)問(wèn)題了。實(shí)際上由于第0和第1個(gè)區(qū)間合成新的區(qū)間0,第1和第2個(gè)區(qū)間合成新的區(qū)間1,那么新的區(qū)間0和1之間應(yīng)該是有一般重疊的,但是圖中沒(méi)有把重疊畫(huà)出來(lái),因?yàn)楫?huà)出來(lái)的話就太亂了。如果是正常有重疊的區(qū)間的話,那么此時(shí)新的區(qū)間的基函數(shù)應(yīng)該就是像下圖這樣也有重疊:
    在這里插入圖片描述
    那么如此不斷的用B樣條的遞推公式合并相鄰的兩個(gè)區(qū)間的話,可以發(fā)現(xiàn)區(qū)間個(gè)數(shù)越來(lái)越少,但是區(qū)間上的樣條基函數(shù)的次數(shù)會(huì)越來(lái)越高,如下圖所示:

在這里插入圖片描述
假設(shè)我們進(jìn)行3次這樣的區(qū)間合并,最終我們得到的每個(gè)區(qū)間上的樣條基函數(shù)就是3次的,整個(gè)過(guò)程如下:

在這里插入圖片描述
另外也可以看參考視頻的講解中作者給出的PPT,其實(shí)也是在表達(dá)這個(gè) 區(qū)間合并、基函數(shù)次數(shù)遞增 的過(guò)程:

在這里插入圖片描述

以上就是B樣條曲線的遞推公式表示的過(guò)程,可以發(fā)現(xiàn)其實(shí)和前面貝塞爾曲線遞推的過(guò)程是非常像的,其實(shí)都是用相鄰的兩個(gè)點(diǎn)組合成一個(gè)新的中間點(diǎn),然后再用相鄰的兩個(gè)中間點(diǎn)組合成一個(gè)更新的中間點(diǎn),如此迭代……

3.4.B樣條引入節(jié)點(diǎn)帶來(lái)的好處——局部性

我們看之前的圖,最終我們得到了5個(gè)B樣條的基函數(shù),并且每個(gè)基函數(shù)都是3次的。由B樣條的公式可以發(fā)現(xiàn),最終我們也需要5個(gè)控制點(diǎn)來(lái)控制樣條曲線,因?yàn)榭刂泣c(diǎn)的個(gè)數(shù)和基函數(shù)的個(gè)數(shù)是一樣的,因?yàn)榭刂泣c(diǎn)就是權(quán)重,有幾個(gè)基函數(shù)肯定就要有幾個(gè)權(quán)重嘛。

那么我們來(lái)分析一下,第0個(gè)控制點(diǎn)P0P_0P0?它作用到了幾個(gè)最初的節(jié)點(diǎn)區(qū)間上呢?如下圖所示,可以發(fā)現(xiàn)它之作用到了前4個(gè)區(qū)間上。也就是說(shuō),如果改變控制點(diǎn)P0P_0P0?,最終只會(huì)影響在區(qū)間0?40-40?4之間的B樣條曲線,而不會(huì)影響它后面的B樣條曲線,這就是B樣條曲線引入控制點(diǎn)之后帶來(lái)的好處——擬合的曲線具有局部性!不會(huì)由于一個(gè)控制點(diǎn)的改變而導(dǎo)致?tīng)恳话l(fā)而動(dòng)全身!

在這里插入圖片描述

3.5.為什么 m = n + k + 1 ?

首先再次定義以上變量的意思:

  • mmm:節(jié)點(diǎn)的個(gè)數(shù)-1,也就是節(jié)點(diǎn)的個(gè)數(shù)=m+1,或者說(shuō)mmm是節(jié)點(diǎn)區(qū)間的個(gè)數(shù)。比如在上圖中,節(jié)點(diǎn)的個(gè)數(shù)為9,則m=8m=8m=8
  • nnn:控制點(diǎn)的個(gè)數(shù)-1,也就是控制點(diǎn)的個(gè)數(shù)=n+1,或者說(shuō)nnn是控制點(diǎn)區(qū)間的個(gè)數(shù)。比如在上圖中,控制點(diǎn)的個(gè)數(shù)為5,則n=4n=4n=4。注意:最后的時(shí)候區(qū)間是5個(gè),表示控制點(diǎn)個(gè)數(shù)就是5個(gè),因?yàn)槊總€(gè)控制點(diǎn)是作用在一個(gè)區(qū)間上的;而在節(jié)點(diǎn)的那個(gè)地方區(qū)間是8個(gè),而節(jié)點(diǎn)數(shù)是9個(gè)!
  • kkk:基函數(shù)的次數(shù),也就是合并區(qū)間的最后得到的基函數(shù)的次數(shù);

那么為什么 m=n+k+1m=n+k+1m=n+k+1呢?其實(shí)從上面合并區(qū)間的過(guò)程中就可以看出來(lái),每合并一次,基函數(shù)的次數(shù)上升一次,區(qū)間的個(gè)數(shù)就減少一次。

  • 一開(kāi)始是時(shí)候區(qū)間的個(gè)數(shù)就是mmm。
  • 最后區(qū)間的個(gè)數(shù)是n+1n+1n+1。注意不是nnn,最終的區(qū)間個(gè)數(shù)就是控制點(diǎn)的個(gè)數(shù),因?yàn)橐粋€(gè)控制點(diǎn)對(duì)應(yīng)一個(gè)區(qū)間的基函數(shù)。
  • 一共合并了kkk次區(qū)間,所以有m?k=n+1m-k = n+1m?k=n+1,因此得到m=n+k+1m = n+k+1m=n+k+1

注意:既然有上面的公式,到底誰(shuí)是自變量,誰(shuí)是因變量?其實(shí)從寫(xiě)法就可以看出來(lái),nnnkkk是自變量,而mmm是因變量。也就是說(shuō),控制點(diǎn)的個(gè)數(shù)n+1n+1n+1是自己事先確定的,基函數(shù)的次數(shù)kkk也是自己事先確定的,確定了這兩個(gè)之后,選擇幾個(gè)節(jié)點(diǎn)m+1m+1m+1也自然就確定了,因?yàn)?strong>這是由B樣條曲線的遞推公式?jīng)Q定的。

3.6.為什么 階數(shù)(Order) = 次數(shù)(Degree) + 1?

首先我們已經(jīng)明白了**次數(shù)(Degree)**的含義,它代表的是最終的基函數(shù)的次數(shù),也就是ttt的最高次冪。

那么 階數(shù)(Order) 有什么意義呢?以及為什么滿足 階(Order) = 次(Degree) + 1

首先說(shuō)階數(shù)的物理意義:它其實(shí)反應(yīng)了當(dāng)前的點(diǎn)最多受到幾個(gè)控制點(diǎn)的控制,也就是如果是4階的B樣條曲線,那么一個(gè)點(diǎn)最多受到它周圍的4個(gè)控制點(diǎn)的控制。

前面我們已經(jīng)說(shuō)了,B樣條曲線具有局部性,而且分析了為什么具有局部性,本質(zhì)上是因?yàn)閰^(qū)間合并這種操作導(dǎo)致最終基函數(shù)所在的區(qū)間只能影響到整個(gè)節(jié)點(diǎn)區(qū)間的一部分,所以這個(gè)基函數(shù)對(duì)應(yīng)的權(quán)重(也就是控制點(diǎn))如果改變,也只會(huì)影響到最終擬合的這個(gè)區(qū)間的樣條曲線,而不會(huì)影響整個(gè)樣條曲線。

那么怎么分析的當(dāng)前的一個(gè)點(diǎn)最多受到幾個(gè)控制點(diǎn)的影響呢?其實(shí)也很簡(jiǎn)單,我們就分析每個(gè)控制點(diǎn)覆蓋的區(qū)間范圍,直到某個(gè)控制點(diǎn)和第0個(gè)控制點(diǎn)沒(méi)有重合的節(jié)點(diǎn)區(qū)間。

如下圖所示,節(jié)點(diǎn)區(qū)間0?10-10?1只受到控制點(diǎn)P0P_0P0?的影響;節(jié)點(diǎn)區(qū)間1?21-21?2會(huì)受到控制點(diǎn)P0P_0P0?、P1P_1P1?的影響;節(jié)點(diǎn)區(qū)間2?32-32?3會(huì)受到控制點(diǎn)P0P_0P0?、P1P_1P1?、P2P_2P2?的影響;節(jié)點(diǎn)區(qū)間3?43-43?4會(huì)受到控制點(diǎn)P0P_0P0?、P1P_1P1?P2P_2P2?、P3P_3P3?的影響;而到了區(qū)間4?54-54?5的時(shí)候,此時(shí)前面的控制點(diǎn)P0P_0P0?已經(jīng)無(wú)法施加控制作用了,此時(shí)起作用的控制點(diǎn)是P1P_1P1?、P2P_2P2?、P3P_3P3?、P4P_4P4?。

所以可以發(fā)現(xiàn),一個(gè)節(jié)點(diǎn)區(qū)間最多受到幾個(gè)控制點(diǎn)的控制,和一個(gè)控制點(diǎn)可以控制幾個(gè)節(jié)點(diǎn)區(qū)間是一樣的!那么一個(gè)控制點(diǎn)可以控制幾個(gè)節(jié)點(diǎn)區(qū)間呢?顯然控制點(diǎn)自己就是一個(gè)區(qū)間,然后每往上走一次,控制點(diǎn)控制的節(jié)點(diǎn)區(qū)間個(gè)數(shù)就+1,所以最終一個(gè)控制點(diǎn)控制的節(jié)點(diǎn)區(qū)間個(gè)數(shù)就是 k+1 !所以說(shuō) 階數(shù) = 次數(shù) + 1

在這里插入圖片描述

可以看到就像一種滑窗的感覺(jué),如下圖所示:

  • 一開(kāi)始的時(shí)候在節(jié)點(diǎn)區(qū)間開(kāi)頭,只有第0個(gè)控制點(diǎn)能發(fā)揮作用,滑窗長(zhǎng)度是1;
  • 慢慢往后遍歷節(jié)點(diǎn)區(qū)間,發(fā)揮作用的控制點(diǎn)個(gè)數(shù)逐漸增加,滑窗長(zhǎng)度逐漸變大;
  • 從滑動(dòng)到某個(gè)節(jié)點(diǎn)區(qū)間開(kāi)始,就只能有恒定個(gè)數(shù)的控制點(diǎn)發(fā)揮作用了,而不會(huì)一直增加,也就是滑窗開(kāi)始保持固定長(zhǎng)度,這個(gè)長(zhǎng)度就是B樣條曲線的 階數(shù)(Order)
  • 快到達(dá)節(jié)點(diǎn)區(qū)間結(jié)尾的時(shí)候,發(fā)揮作用的控制點(diǎn)個(gè)數(shù)逐漸減少,滑窗長(zhǎng)度逐漸變小;
  • 最后到達(dá)節(jié)點(diǎn)區(qū)間末尾,只有最后一個(gè)控制點(diǎn)能發(fā)揮作用,滑窗長(zhǎng)度又變成1。

在這里插入圖片描述
另外從這個(gè)圖中也可以發(fā)現(xiàn),起始和最后的kkk個(gè)區(qū)間,也就是階數(shù)-1個(gè)區(qū)間,有效的控制點(diǎn)個(gè)數(shù)是不足的,所以一般來(lái)說(shuō)不使用前面的幾個(gè)節(jié)點(diǎn)區(qū)間,而使用有效控制點(diǎn)個(gè)數(shù)到達(dá)階數(shù)的那些區(qū)間,也就是從中間區(qū)間開(kāi)始使用。

3.7.B樣條曲線的特點(diǎn)

  • 優(yōu)點(diǎn):和Bezier樣條一樣,B樣條也是通過(guò)逼近一組控制點(diǎn)來(lái)產(chǎn)生的。但是B樣條具有兩個(gè)Bezier樣條所不具備的特點(diǎn):
    (1)B樣條多項(xiàng)式的次數(shù)可獨(dú)立于控制點(diǎn)數(shù)目(有一定限制);
    (2)B樣條允許局部控制曲線或曲面。
  • 缺點(diǎn):比Bezier樣條更復(fù)雜。

3.8.B樣條曲線的歷史

最后給出這個(gè)吧,其中前面的B樣條曲線的遞推公式就是de Boor-Cox公式,1972年就提出來(lái)了,真理經(jīng)久不衰啊……

  • 均勻節(jié)點(diǎn)意義下的一元B樣條(B-splines,Basis Splines縮寫(xiě))是在1946年由I.J.Schoenberg提出
  • 非均勻節(jié)點(diǎn)定義的B樣條由Curry在1947年提出
  • 1962年,法國(guó)數(shù)學(xué)家Pierre Bézier研究了一種曲線,即Bézier曲線
  • 1972年,de Boor與Cox分別獨(dú)立提出了計(jì)算B樣條基函數(shù)的公式,這個(gè)公式對(duì)B樣條作為計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)重要工具起到了至關(guān)重要的作用,稱之為de Boor-Cox公式。在此之前,計(jì)算B樣條基函數(shù)大多用差分方法計(jì)算,數(shù)值上可能不穩(wěn)定。

4.B樣條曲線的矩陣表達(dá)式及在SLAM中的應(yīng)用

參考:均勻B樣條曲線的表達(dá)式

4.1.均勻B樣條的矩陣表達(dá)式

在這里插入圖片描述
注意:這個(gè)矩陣形式的推導(dǎo)可以不用關(guān)注,實(shí)際上是有公式的,在上面的參考博客中就有。只需要知道其中的自變量有ttt和控制點(diǎn)PPP即可。比如在SLAM中,位置樣條曲線P(t)P(t)P(t)對(duì)ttt求導(dǎo),得到的就是速度樣條曲線,再對(duì)ttt求導(dǎo)得到的就是加速度曲線。如果要優(yōu)化軌跡的時(shí)候,那么就是對(duì)控制點(diǎn)求導(dǎo)來(lái)有優(yōu)化軌跡。

4.2.均勻B樣條表示李群空間的矩陣表達(dá)式

在這里插入圖片描述

4.3.B樣條曲線用于SLAM的軌跡表示

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

http://m.aloenet.com.cn/news/45509.html

相關(guān)文章:

  • 響應(yīng)式網(wǎng)站無(wú)法做百度聯(lián)盟最新seo操作
  • 科技網(wǎng)站實(shí)例上海seo推廣整站
  • 黃埔區(qū)做網(wǎng)站什么是互聯(lián)網(wǎng)銷售
  • 方案策劃網(wǎng)站網(wǎng)上商城網(wǎng)站開(kāi)發(fā)
  • 個(gè)人網(wǎng)站建設(shè)教程網(wǎng)站排名查詢站長(zhǎng)之家
  • 濟(jì)南網(wǎng)站建站公司東莞網(wǎng)絡(luò)營(yíng)銷推廣軟件
  • 全國(guó)網(wǎng)站制作公司排名我是seo關(guān)鍵詞
  • 網(wǎng)站優(yōu)化價(jià)格新河seo怎么做整站排名
  • 深圳做微信網(wǎng)站設(shè)計(jì)軟文推廣多少錢(qián)
  • 百度中搜到網(wǎng)站名字電商培訓(xùn)內(nèi)容
  • 如何快速做企業(yè)網(wǎng)站包括商城常見(jiàn)的營(yíng)銷方式有哪些
  • 什么是權(quán)重高的網(wǎng)站搜狗站長(zhǎng)
  • 國(guó)外獨(dú)立站建站站長(zhǎng)工具seo綜合查詢推廣
  • 廣州網(wǎng)匠營(yíng)銷型網(wǎng)站建設(shè)公司濟(jì)南網(wǎng)站seo
  • Wordpress網(wǎng)站調(diào)用代碼2024年新冠疫情最新消息今天
  • 陽(yáng)江市企業(yè)網(wǎng)站優(yōu)化企業(yè)如何進(jìn)行宣傳和推廣
  • 網(wǎng)站建設(shè)優(yōu)化服務(wù)特色高端網(wǎng)站設(shè)計(jì)
  • 重慶唐卡裝飾公司深圳市企業(yè)網(wǎng)站seo
  • 建網(wǎng)站開(kāi)源代碼全國(guó)新冠疫情最新消息
  • wordpress用戶名忘記密碼廣州seo站內(nèi)優(yōu)化
  • 網(wǎng)站內(nèi)容建設(shè)的原則是什么意思整合營(yíng)銷策略有哪些
  • 用老域名做網(wǎng)站還是新域名武漢seo首頁(yè)優(yōu)化技巧
  • ??谧鼍W(wǎng)站公司哪家好網(wǎng)頁(yè)快照
  • 網(wǎng)站工程師的職責(zé)網(wǎng)站推廣的6個(gè)方法是什么
  • url怎么做網(wǎng)站百度上海分公司
  • 網(wǎng)絡(luò)營(yíng)銷推廣方案pdf站長(zhǎng)工具seo綜合查詢
  • soho外貿(mào)建站拼多多seo 優(yōu)化軟件
  • 網(wǎng)站登錄不上怎么回事站長(zhǎng)是什么職位
  • 電子工程網(wǎng)官方網(wǎng)站網(wǎng)址怎么注冊(cè)
  • 做搜狗網(wǎng)站優(yōu)化搜索數(shù)據(jù)