• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            The Building Blocks of a B-Spline

            Posted on 2011-12-04 18:21 eryar 閱讀(2597) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

            B樣條曲線比Bezier曲線更靈活,它的靈活性來自于你對基函數(shù)靈活地控制。我將對B樣條的各組成部分進(jìn)行講解,首先講一下控制頂點(Control Points)。

            Control Points 控制頂點

            Bezier曲線的控制頂點對整條曲線都有影響,即改變某一頂點的位置,對整條曲線都有影響,因而Bezier曲線不具有局部修改性。

            由于靈活性的緣故,你可以對B樣條設(shè)置任意數(shù)量的控制頂點,也可以確定各控制頂點的影響范圍。

             

            Degree and Order 次數(shù)和階數(shù)

            多項式曲線時,曲線的次數(shù)是由多項式中變量指數(shù)最高項確定。Bezier曲線時,曲線的次數(shù)由控制頂點數(shù)N確定,即N個控制頂點的曲線的次數(shù)是(N-1)次。基于這一點,我將引入一些新的術(shù)語來討論曲線的次數(shù)和階數(shù),即階數(shù)(Order)由設(shè)計值k確定,次數(shù)(Degree)則為(k-1)。

            B樣條把控制頂點數(shù)N與曲線的次數(shù)和控制頂點影響范圍解耦。再抽象點說,曲線上的點只受一些控制頂點的影響,而不是任意控制頂點。或者說每個控制頂點只影響曲線上的一部分點的值。這就有意思啦,因為你對曲線有了局部修改的權(quán)力。你可用16個控制頂點定義一條曲線,但是它的階數(shù)為4。如圖4.1所示,移動一個控制頂點只會影響曲線上的一部分。若要用Bezier曲線來實現(xiàn),就只能是把幾個Bezier曲線拼接啦。

            Local Control

             

            我已經(jīng)講到了術(shù)語階數(shù)(Order)、次數(shù)(Degree),及控制頂點對曲線區(qū)間的影響,但是并沒有講到具體是怎樣影響的。使用Bezier曲線時,沒有任何的機(jī)制來限制影響的區(qū)間,因為任意一個控制頂點的改變都會影響到曲線上的每個點。B樣條給你更多的控制,正是由于有節(jié)點向量(Knot Vectors)的機(jī)制。

             

            Knot Vectors 節(jié)點向量

            節(jié)點向量的目的就是描述控制頂點的影響范圍。想象一下你想畫一個有五個控制頂點的三階曲線,每個控制頂點只會影響到參數(shù)區(qū)間上的曲線的一小部分。你可以描述任意一個控制頂點的影響范圍為:[t0, t3], [t 1, t4], [t2, t5], [t3, t6], [t4, t7]。也可以在一個單一序列中緊湊的寫成:[t0 t1 t2 t3 t4 t5 t6 t7]。這就是節(jié)點向量。圖4.3所示為正式地表示了節(jié)點向量的影響范圍:

            Knot Vector

            還可以從本例中推出幾個更普遍的結(jié)論。首先,一個節(jié)點向量必須有N+k個元素;其次,節(jié)點向量必須是單調(diào)遞增的。即每個節(jié)點向量的元素必須比前一個大或相等。單調(diào)遞增的區(qū)間可以是任意的,當(dāng)然也可以是[0,1]。下面是三個節(jié)點向量的例子。注意第二個節(jié)點向量和第三個在功能上相同,即用它們將會生成相同的曲線:

            [X] = [3 4 5 6 7 8]

            [X] = [1 2 3 4 5 6 7 8]

            [X] = [0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0]

            本書中大部分情況下將會使用整型的節(jié)點向量值,如第二種,因為這樣解釋起來要簡單些。而在程序代碼中,我將使用單位化后的節(jié)點向量,因為當(dāng)參數(shù)區(qū)間為[0,1]時,考慮不同的范圍要簡單些。這兩種情況產(chǎn)生的曲線沒什么不同。

            通常喜歡按節(jié)點向量是否均勻分布把節(jié)點向量分為均勻節(jié)點向量和非均勻節(jié)點向量。各舉例如下:

            • [X] = [1 2 3 4 5 6] (uniform)

            • [X] = [1 3 5 7 9 11] (uniform)

            • [X] = [1 2 2 3 3 4] (nonuniform)

            • [X] = [1 2 3 3 4 5] (nonuniform)

            節(jié)點向量還有兩種類型:開放(Open)和周期性的(Periodic)。

            至此為止,你已經(jīng)知道創(chuàng)建B樣條曲線的所有內(nèi)容,除了B樣條的基函數(shù)。知道一系列控制頂點可以用來定義曲線;知道可以用階數(shù)及其相應(yīng)的次數(shù)來描述曲線的屬性;知道節(jié)點向量的機(jī)制,控制頂點是怎樣來影響曲線的。你還需要一個基本的部分,即把上面所有組合在一起來畫些東西,這就是基函數(shù)(the Basis Function)。

             

            B樣條基函數(shù) B-Spline Basis Functions

            在第三章講Bezier曲線時,生活要簡單的多。Bezier曲線的Bernstein基函數(shù)只是控制頂點的函數(shù)。現(xiàn)在,有了更多的靈活性,但是需要關(guān)注的就更多。(能力越大,責(zé)任越大。)除了控制頂點以外,B樣條基函數(shù)還需要解釋曲線的次數(shù),還有由節(jié)點矢量定義的區(qū)間。這個基函數(shù)不是由Bernstein多項式定義的,而是由Cox-de Boor遞歸公式定義的。這個著名的遞推公式的發(fā)現(xiàn)是B樣條理論的最重要的進(jìn)展。

            Cox-de Boor formulas

            B樣條基的性質(zhì):

            1. 遞推性。由遞推公式可以表明;
            2. 局部支承性。局部支承性表明B樣條基是定義在整個參數(shù)軸上,但僅在支承區(qū)間上有大于零的值,在這個區(qū)間外均為零。B樣條由其支承區(qū)間內(nèi)的所有節(jié)點決定。
            3. 規(guī)范性。

              Constraint on the range 

            4. 可微性。在節(jié)點區(qū)間內(nèi)部是無限次可微的。

            這些公式初看起來很嚇人,其實不然,只要你理解它們都是做什么用的。畫Bezier曲線時,可以根據(jù)Bernstein基函數(shù)很容易就推出一個基函數(shù)。現(xiàn)在必須根據(jù)階數(shù)來遞推去找到基函數(shù)。從一階基函數(shù)開始推導(dǎo),因為便于圖示和舉例。

            想像一下我想用四個控制頂點畫一個四階三次曲線,我選擇節(jié)點矢量為[X] = [0, 0, 0, 0, 1, 1, 1, 1]。在繼續(xù)后面內(nèi)容之前,用圖4.3中的術(shù)語來考慮一下這個節(jié)點矢量。這個節(jié)點矢量讓每個控制頂點的改變都會影響到整條曲線,聽起來很耳熟?

            一本色综合久久| 亚洲精品成人网久久久久久| 91精品国产综合久久精品| 国产成人综合久久精品尤物| 久久久久久久久久久免费精品 | 亚洲AV无码久久| 国产99久久久久久免费看| 香蕉久久影院| 久久本道久久综合伊人| 77777亚洲午夜久久多人| 精品久久人人做人人爽综合| 精品久久久久久久久午夜福利| 久久亚洲AV无码西西人体| 国产成人久久激情91| 免费久久人人爽人人爽av| 久久97久久97精品免视看| 久久久久女人精品毛片| 久久国产精品无| 国产精品99久久精品爆乳| 久久777国产线看观看精品| 亚洲色大成网站www久久九| 久久精品亚洲精品国产欧美| 亚洲午夜精品久久久久久人妖| 三上悠亚久久精品| 中文字幕人妻色偷偷久久| 欧美久久天天综合香蕉伊| 久久亚洲av无码精品浪潮| 精品久久久无码中文字幕天天| 亚洲国产成人久久精品动漫| 久久福利青草精品资源站| 久久er国产精品免费观看2| 久久精品国产99国产精品澳门| 久久精品国产亚洲av高清漫画| 人妻无码久久一区二区三区免费 | 久久最新免费视频| 欧美午夜A∨大片久久 | 精品久久久久久国产| 亚洲国产精品无码成人片久久| 欧美一区二区三区久久综 | 久久久久人妻一区精品| 久久亚洲中文字幕精品一区|