二維代數幾何原理 原

張雲貴編寫於2004年4月,是在爲平面CAD軟件設計通用SDK時整理所需知識時編寫的文檔(Word文檔見文庫)。

第一章 矢量代數

1.1 二維矢量

1.1.1 矢量表示

    矢量的座標表示爲V = (x, y),其中x和y爲座標分量。

1.1.2 矢量長度

    |V| = sqrt(x*x + y*y)

1.1.3 單位矢量

    E = V / |V|

1.1.4 矢量數乘

    矢量V(x, y)和實數n的數量積爲:

            n*V = V*n = ( x * n, y * n )

            V / n = ( x / n, y / n )

1.1.5 矢量點乘

    兩個矢量A(x1, y1)和B(x2, y2)的點積爲:

            A·B = x1 * x2 + y1 * y2

    性質:

            A·B = B·A

            A·(B+C) = A·B + A·C

    幾何意義:

        A·B可以看作|A|乘以BA上的投影的長度。若AB爲非零矢量,(1)如果A·B>0,則AB同在一側,夾角小於90度;(2)如果A·B<0,則AB夾角大於90度;(3)如果A·B=0,則AB

1.1.6 矢量叉乘

    兩個三維矢量A(x1, y1, z1)和B(x2, y2, z2)的叉積爲:

        A×B = (y1*z2 – z1*y2, z1*x2 – x1*z2, x1*y2 – y1*x2)

    取z=0可得到二維矢量A(x1, y1)和B(x2, y2)的叉積(0, 0, z)的Z分量爲:

        (A×B)z = x1 * y2 – y1 * x2

    性質:

        A×B = -B×A

        (A+BC = A×C + B×C

    幾何意義:

        A×B垂直於AB,且ABA×B構成右手系,A×B的矢量長度爲以AB爲鄰邊的平行四邊形的面積。(A×B)z可以看作|A|乘以BA上的垂直投影的長度。

        若AB爲非零矢量,(1)如果(A×B)z>0,則BA的逆時針方向;(2)如果(A×B)z<0,則BA的順時針方向;(3)如果(A×B)z=0,則AB

1.1.7 正交矢量

    沿逆時針方向旋轉90度得到矢量V(x, y)的正交矢量:(-y, x)。

    沿順時針方向旋轉90度得到的正交矢量爲(y, -x)。

1.1.8 矢量角度

    矢量V(x, y)的角度定義爲從座標系X軸正向旋轉到矢量V所轉過的角度,逆時針時爲正,順時針爲負。矢量角度爲:

            angle = acos(x / |V|),得到的角度範圍爲0到π

            angle = asin(y / |V|),得到的角度範圍爲-π/2到π/2

            angle = atan(y / x),得到的角度範圍爲-π/2到π/2

            angle = atan2(y, x),得到的角度範圍爲-π到π

    規定零矢量的角度爲0。

1.2 矢量點乘和叉乘的應用

1.2.1 矢量夾角

    矢量A(x1, y1)和B(x2, y2)的夾角定義爲從矢量A旋轉到矢量B所轉過的角度,逆時針時爲正,順時針爲負。矢量夾角的計算如下:

            sin(angle) = (A×B)z / (|A|*|B|)

            cos(angle) = (A·B) / (|A|*|B|)

            tan(angle) = (A×B)z / (A·B)

    得到:

            angle = acos((x1 * x2 + y1 * y2) / (|A|*|B|))

            angle = asin((x1 * y2 – y1 * x2) / (|A|*|B|))

            angle = atan2(x1 * y2 – y1 * x2, x1 * x2 + y1 * y2)

    規定零矢量和其它矢量的夾角爲0度。

1.2.2 矢量旋轉方向

    要判斷矢量A旋轉到矢量B旋轉角最小時,是逆時針轉還是順時針轉,可以這樣判斷:如果(A×B)z>0則是逆時針轉,如果(A×B)z<0則是順時針轉。

1.2.3 判斷平行

    判斷兩個矢量是否平行就是判斷兩個矢量的夾角在某個很小的範圍內。

    例如滿足下面條件時兩個矢量就平行:

            tan(夾角) = (A×B)z / (A·B) ≤ eps

    其中eps=tan(角度公差),例如0.0001表示角度公差約爲0.0057度。

    或者滿足下面條件也平行:

            | A/|A| ± B/|B| | < eps

    其中eps=2sin(角度公差/2),例如0.0001表示角度公差約爲0.0057度。

    規定零矢量平行於任何矢量。

1.2.4 判斷同向

    滿足下面條件時兩個矢量就同向:

            (A×B)z / (A·B) ≤ eps 且 (A·B) ≥ 0

    其中eps=tan(角度公差),例如0.0001表示角度公差約爲0.0057度。

    平行時可能同向也可能反向,因爲cos(夾角) = (A·B) / (|A|*|B|),同向時cos(夾角)接近於1.0,反向時接近於-1.0,考慮到零矢量和任何矢量同向,所以取(A·B) ≥ 0。

    或者滿足下面條件也同向:

            | A/|A| - B/|B| | < eps

    其中eps=2sin(角度公差/2),例如0.0001表示角度公差約爲0.0057度。

1.2.5 判斷反向

    滿足下面條件時兩個矢量就反向:

            (A×B)z / (A·B) ≤ eps 且 (A·B) < 0

    其中eps=tan(角度公差),例如0.0001表示角度公差約爲0.0057度。

    平行時可能同向也可能反向,因爲cos(夾角) = (A·B) / (|A|*|B|),同向時cos(夾角)接近於1.0,反向時接近於-1.0,所以取(A·B) < 0。

    或者滿足下面條件也反向:

            | A/|A| + B/|B| | < eps

    其中eps=2sin(角度公差/2),例如0.0001表示角度公差約爲0.0057度。

1.2.6 判斷垂直

    滿足下面條件時兩個矢量就垂直:

            |A·B| > 0 且 (A·B) / (A×B)z ≤ eps

    其中eps=tan(角度公差),例如0.0001表示角度公差約爲0.0057度。

    或者滿足下面條件也垂直:

            |cos(夾角)| = |A·B| / (|A|*|B|) < eps

    其中eps=sin(角度公差),例如0.0001表示角度公差約爲0.0057度。

1.2.7 正交投影

    矢量B(x2, y2)在矢量A(x1, y1)上的投影矢量爲OP,垂直距離爲|BP|。計算如下:

            proj = (A·B) / (A·A)

            OP = proj * A = A * (A·B)/(A·A)

            PB = OBOP

    proj > 0 則投影矢量OPA同向, 否則反向。

            B = OP + PBOPPB

            OP = A*(A·B)/(A·A)

            clip_image002 clip_image004

                            正交投影                         矢量分解

1.2.8 矢量分解

    對於兩個非零且非共線矢量A(x1, y1)和B(x2, y2),矢量C(x, y)對AB的分解如下:

            C = M + N = m*A + n*B

    可以將AB看作仿射座標系的座標軸,(x, y)對應於仿射座標系下的座標(m, n)。計算如下(仿射座標系見後說明):

            clip_image006

            clip_image008

    其中:det = x1*y2 - y1*x2

            m = (x*y2 - y*x2)/det, n = (x1*y – y1*x)/det

    即

            m = (C×B)z / (A×B)z , n = (A×C)z / (A×B)z

            M = m * AN = n * B

 

1.3 二維點

1.3.1 點的表示

    點的座標表示爲P = (x, y),其中x和y爲座標分量。

1.3.2 矢量運算

    點 + 矢量 = 點

    點 – 矢量 = 點

    點 – 點 = 矢量

    矢量 + 矢量 = 矢量

    矢量 – 矢量 = 矢量

1.3.3 距離和角度

    兩點P1(x1, y1)和P2(x2, y2)的距離|P1P2| = hypot(x2-x1, y2-y1)

    P1P2的角度等於矢量P2 - P1的角度。

1.3.4 極座標

    設極點O(x0, y0),矢徑dist,極角angle,則極座標爲:

    (x0 + dist * cos(angle), y0 + dist * sin(angle))

1.3.5 移動直尺法

    設起始點P1(x1, y1),方向點P2(x2, y2),沿着方向P1->P2的偏移爲xoff,垂直方向(逆時針)的偏移爲yoff,則偏移後的座標P(x, y)爲:

            x = x1 + xoff * dcos - yoff * dsin

            y = y2 + xoff * dsin + yoff * dcos

    其中:dcos = (x2 - x1) / |P1P2|,dsin = (y2 - y2) / |P1P2|。

    如果方向點和起始點重合,則偏移後的座標爲(x1+xoff, y1+yoff)。

1.4 二維齊次變換

1.4.1 齊次變換矩陣

    在二維圖形的幾何變換中的幾何變換矩陣可以表示爲:

            clip_image010

    其中:clip_image012稱爲M的線性部分,其作用是對圖形進行伸縮、旋轉、對稱等變換;[g, h]稱爲M的平移部分,其作用是對圖形進行平移變換;clip_image014是對圖形進行投影;[i]是對整個圖形進行放縮。通常c=0,f=0,i=1。

1.4.2 座標變換

            clip_image016

    座標P(x, y)經變換矩陣變換後坐標爲(xp, yp),有:

            xp = x * a + y * d + g

            yp = x * b + y * e + h

1.4.3 矢量變換

    矢量變換和座標變換相似,區別是矢量變換不受變換矩陣的平移部分影響。

            clip_image018

    矢量(x, y)經變換矩陣變換後的矢量爲(xp, yp),有:

            xp = x * a + y * d

            yp = x * b + y * e

    特別的,矢量(1, 0) 變換後的矢量爲(a, b),矢量(0, 1) 變換後的矢量爲(d, e)。

1.4.4 角度變換

    角度變換時先將角度轉換爲單位矢量,然後進行矢量變換,最後得到矢量角度。

            clip_image020

1.4.5 平移變換

    將一個座標沿X和Y方向分別平移dx和dy的變換矩陣爲:

            clip_image022

    平移迭加爲:

            clip_image024

1.4.6 比例變換

    以原點爲中心,圖形的X和Y方向分別變成原來的sx、sy倍的變換矩陣爲:

            clip_image026

    比例迭加爲:

            clip_image028

    sx=sy 時爲均勻變化;

    sx=sy > 1時爲放大變化;

    0 < sx=sy < 1時爲縮小變化。

    以任意點(x, y) 爲中心的比例變換矩陣爲:

            clip_image030

1.4.7 旋轉變換

    圖形繞原點逆時針旋轉角度a的變換矩陣爲:

            clip_image032

    圖形繞原點順時針旋轉角度a的變換矩陣爲:

            clip_image034

    旋轉迭加爲:

            clip_image036

    以任意點(x, y) 爲中心的旋轉變換矩陣爲:

            clip_image038

1.4.8 對稱變換

    關於X軸對稱的變換矩陣爲:

            clip_image040

    關於Y軸對稱的變換矩陣爲:

            clip_image042

    關於原點對稱的變換矩陣爲:

            clip_image044

    關於點(x, y)對稱的變換矩陣爲:

            clip_image046

    如果中心線過點(x, y),傾角爲a,則關於直線對稱的變換矩陣爲:

            clip_image048

    如果中心線過點(x, y),方向矢量爲(dx, dy),則關於直線對稱的變換矩陣爲:

            clip_image050

    其中:

            d2 = dx * dx + dy * dy, d2相當於矢量長度的平方;

            c2 = 2 * dx * dy / d2, c2相當於cos(2a),a爲中心線傾角;

            s2 = (dx * dx – dy * dy) / d2, s2相當於sin(2a)。

1.4.9 行列式值

    變換矩陣的行列式的值爲:

            clip_image052

    如果c=0,f=0,i=1,則det=ae-bd。

1.4.10 矩陣求逆

    矩陣能求逆矩陣的條件是矩陣的行列式值det不爲零。

            clip_image054

    如果c=0,f=0,i=1,則:

            clip_image056

1.4.11 正投影變換的分解

    正投影變換由平移、比例、旋轉、對稱這四種變換組成,要將正投影變換矩陣分解爲這四種變換的疊加,可按以下步驟進行:

    (1)正投影變換的條件:變換矩陣的線性部分的行矢量正交且等長。

    設行矢量爲e1(a, b)和e2(d, e),則滿足下面條件就是正投影變換:AB 且|e1|=|e2|。判斷時可用前面說明的判斷垂直的方法給定公差判斷。

    (2)正投影變換矩陣的線性部分可以看成由下面的矩陣組成:

            clip_image058

    其中:s是比例變換部分的比例,ang是旋轉部分的角度,m是對稱部分的對稱中心線傾角。對稱部分可能沒有,即正投影變換矩陣的線性部分由比例和旋轉組成。

    在正投影變換矩陣中,如果a=e且b+d=0,則沒有對稱部分,否則有。

    比例s = |e1|。

    如果沒有對稱部分,則旋轉角度ang爲矢量e1的角度。

    如果有對稱部分,則

            clip_image060

    可以看出,有對稱部分時旋轉角度ang和對稱角度m只能求出(2m-ang),無法單獨求出其中一個。因此,假定旋轉角度爲零,則對稱角度m爲矢量e1的角度的一半。

1.5 仿射座標系

1.5.1 仿射座標

    給定兩個非零且不共線的矢量e1e2,則任一矢量A可按這兩個矢量分解,令其係數爲m和n,則矢量A可表示爲:

            A = m*e1 + n*e2

    這種座標系{e1, e2}稱爲仿射座標系,e1e2稱爲座標矢量,(m, n)稱爲矢量A的仿射座標。

如果仿射座標系的原點在迪卡爾座標系中的座標爲origin,則任意點P可表示爲:

    P = origin +m*e1 + n*e2

1.5.2 仿射座標系的矩陣表示

    對於原點爲origin(dx, dy),座標矢量爲e1(x1, y1)和e2(x2, y2)的仿射座標系{e1, e2, origin},可用如下變換矩陣表示:

            clip_image062

    而矢量的仿射座標用變換矩陣表示如下:

            A = m*e1 + n*e2

            clip_image064

    點的仿射座標用變換矩陣表示如下:

            P = origin +m*e1 + n*e2

            clip_image066

1.5.3 座標變換

    普通迪卡爾座標系可以看成原點爲(0, 0),座標軸矢量爲(1, 0)和(0, 1)的座標系,該座標系稱爲世界座標系,其變換矩陣爲單位矩陣。

    仿射座標系{e1, e2, origin}是以世界座標系中的矢量e1e2爲座標軸矢量,以世界座標系中的座標origin爲原點的座標系,對應的變換矩陣A表示從該仿射座標系映射到世界座標系的矩陣。如果仿射座標系下的局部座標爲P,則其世界座標爲P×A。

    對於兩個仿射座標系,設其變換矩陣分別爲A和B,則前一座標系到後一座標系的變換矩陣爲AB-1,該變換矩陣是世界座標在這兩個仿射座標系中的仿射座標之間的座標變換公式。

1.5.4 座標系映射

    仿射座標系映射到世界座標系的線性變換映射關係爲:

            T(α)=α×A

    其中:α爲齊次仿射座標。如果在仿射座標系中建立原點爲(0,0),座標軸矢量爲(1,0)(0,1)的座標系,則A爲對應的變換矩陣。如果在仿射座標系中建立原點爲(dx,dy),座標軸矢量爲(ix,iy)(jx,jy)的座標系,則對應的變換矩陣B=M-1AM:

            clip_image068

第二章 參數化曲線

2.1 直線

2.1.1 無窮直線

    過點P0(x0, y0),方向矢量爲V(m, n)的直線參數方程爲:

            clip_image070 t∈(-∞, ∞)

    矢量方程爲:

            P(t) = P0 + V*t

2.1.2 直線段

    設直線段的端點爲A(x0, y0)和B(x1, y1),則直線段的參數方程爲:

            clip_image072 t∈[0, 1]

    矢量方程爲:

            P(t) = A + (B-A)*t

2.1.3 射線

    射線的方程和上面的方程相同,只是參數範圍爲t∈[0, ∞)。

2.1.4 中垂線

    直線段A(x0, y0)B(x1, y1)的中垂線的參數方程爲:

            clip_image074 t∈(-∞, ∞)

2.1.5 直線的一般式方程

    直線的一般式方程爲:Ax+By+C=0,其中A,B,C爲常數,A和B不同時爲零。該直線的方向矢量爲(-B, A),斜率爲-A/B。

    設兩直線L1和L2的方程爲A1x+B1y+C1=0和A2x+B2y+C2=0,夾角爲ang(從L1到L2爲逆時針時爲正),交點爲G(x0, y0)則有:

            tan(ang) = (A1B2-A2B1)/(A1A2+B1B2)

            cos(ang) = (A1A2+B1B2)/sqrt((A12+B12)(A12+B12))

            sin(ang) = (A1B2-A2B1)/sqrt((A12+B12)(A12+B12))

            x0 = (B1C2-B2C1)/(A1B2-A2B1)

            y0 = (C1A2-C2A1)/(A1B2-A2B1)

2.2 圓弧

2.2.1 圓弧方程

      已知圓心C(x0, y0),半徑r,起始角度start,終止角度相對於起始角度的轉角sweep(逆時針爲正),則圓弧的參數方程爲:

            clip_image076 t∈[0, 1]

    設參考X軸矢量爲A(sx, sy),|A|=r,起始角度相對於A,則圓弧的矢量方程爲:

            P(t) = A*cos(k) + B*sin(k) + C,k = start + sweep * t,t∈[0, 1]

    其中:A B(-sy, sx),sx2+sy2=r2

    該圓弧可以看成是在原點爲C、X軸矢量爲A的直角座標系中,半徑爲1、起始角度爲start,轉角爲sweep的圓弧。

    圓的轉角爲2π,起始角度可定爲0。

2.2.2 圓的切線

    給定以下參數方程的圓:

            clip_image078 t∈[0, 2PI]

    則圓上參數爲t0的點的切線方程爲:

            clip_image080 t∈(-∞, ∞)

2.3 橢圓

2.3.1 橢圓弧方程

    已知橢圓中心(x0, y0),半長軸ra,半短軸rb,半長軸角度a0,相對於半長軸的起始角度start,終止角度相對於起始角度的轉角sweep(逆時針爲正),則橢圓弧的參數方程爲:

            clip_image082

    其中:橢圓的離心角k = start + sweep * t,t∈[0, 1]

    如果a0=0則爲:

            clip_image084

    橢圓的轉角爲2π,起始角度可定爲0。

    考慮一般情況,已知橢圓中心C(x0, y0),共軛半徑矢量A(xa, ya)和B(xb, yb),相對於A的起始角度爲start,終止角度相對於起始角度的轉角sweep(逆時針爲正),則橢圓弧的矢量方程爲:

            P(t) = A*cos(k) + B*sin(k) + C,k = start + sweep * t, t∈[0, 1]

    其中:k爲橢圓的離心角。

    該橢圓弧可以看成是在原點爲C、X軸矢量爲A,Y軸矢量爲B的仿射座標系中,半徑爲1、起始角度爲start,終止角度爲sweep的圓弧。

2.3.2 橢圓的二次曲線方程形式

    二次曲線爲橢圓時,其參數方程爲:

            P(t) = (a0 + a1*t + a2*t*t) / (1 + t*t) t∈[0, 1]

    其中:a0a1a2是常數矢量。

    對於標準的橢圓方程:

            P(a) = A*cos(a) + B*sin(a) + C

    其中:a爲橢圓的離心角;AB是常數矢量;C爲橢圓中心座標。

    令 t=tan(a/2),則cos(a)=(1-t*t)/(1+t*t),sin(a)=2*t/(1+t*t)

            P(t) = ((A+C) + 2B*t + (C-A)*t*t) / (1 + t*t)

    故有:

            a0 = A + Ca1 = 2Ba2 = C - A

2.3.3 橢圓的切線

    給定以下參數方程的橢圓:

            clip_image086 t∈[0, 2PI]

    則橢圓上參數爲t0的點P(t0)的切矢P’(t0)爲:

            clip_image088

    如果a0=0則爲:

            clip_image090

    橢圓上參數爲t0的點的切線方程爲:

            P(t) = P(t0) + P’(t0)*t t∈(-∞, ∞)

2.4 折線

    給定n(n≥2)個有序的頂點Pi(i=0,1,…,n-1),折線有n-1個折線段,每個折線段的方程爲:

Pi(t) = Pi + (Pi+1Pi)(t – i) 0≤i≤n-1,t∈[i, i+1]

2.5 三次參數樣條曲線

2.5.1 三次參數曲線方程

    給定兩點P0P1以及這兩點的切矢V0V1,設h爲弦長|P0P1|,則三次參數曲線方程爲:

            P(t) = B0 + B1t + B2t2 + B3t3 t∈[0, h]

    其中:

            B0 = P0

            B1 = V0

            B2 = 3(P1P0)/h2 – (2V0 + V1)/h

            B3 = (V0 + V1)/h2 – 2(P1P0)/h3

    曲線的導數爲:

            P’(t) = B1 + 2B2t + 3B3t2

            P”(t) = 2B2 + 6B3t

    如果令u = t / h,或者將h看成h=1,則曲線方程可改爲

            P(u) = K0 + K1u + K2u2 + K3u3 u∈[0, 1]

    其中:

            K0 = P0

            K1 = V0

            K2 = 3(P1P0) - 2V0V1

            K3 = V0 + V1 – 2(P1P0)

    曲線方程又可改寫成:

            P(u) = F0P0 + F1P1 + G0V0 + G1V1 u∈[0, 1]

    其中:

            F0 = 2u3 - 3u2 + 1

            F1 = -2u3 + 3u2

            G0 = u3 - 2u2 + u

            G1 = u3 - u2

2.5.2 三次參數樣條函數的連續方程組

    給定n(n≥2)個有序的型值點Pi(i=0,1,…,n-1),構造出第i段三次參數樣條曲線爲:

            Pi(t) = B0 + B1t + B2t2 + B3t3 i=0,1,…,n-2,t∈[0, hi]

    其中:

            hi爲弦長|PiPi+1|

            B0 = Pi

            B1 = Vi

            B2 = 3(Pi+1Pi)/hi2 – (2Vi + Vi+1)/hi

            B3 = (Vi + Vi+1)/hi2 – 2(Pi+1Pi)/hi3

    現在已知型值點位置,型值點切矢未知,爲了求出型值點切矢Vi,根據曲線在型值點處二階導數連續的條件得到連續方程組:

            clip_image092

    其中:i∈[1, n-2]

    該線性方程組共有(n-2)個方程,但有n個未知量Vi,需要添加兩個條件。

    連續方程組寫成矩陣形式如下:

            clip_image094

    其中:Ci = clip_image096,i=1,2,…,n-2

    該方程組等效於:

            clip_image098 (i=1,2,…,n-2)

2.5.3 端點條件

    連續方程組缺的兩個條件通常用邊界型值點處的附加條件來提供,常用的端點條件有:

    1)已知邊界點處的切矢,該端點也稱爲夾持端。

        如果給定首端點的切矢V0,則方程組第一個方程中a=1,b=0,C0=V0

        如果給定末端點的切矢Vn-1,則方程組最後一個方程中m=0,n=1,Cn-1=Vn-1

    2)已知邊界點處的二階導數爲零,該端點也稱爲自由端。

        如果首端點爲自由端,則方程組第一個方程中a=2,b=1,C0=3(P1P0)/h0

        如果末端點爲自由端,則方程組最後一個方程中m=1,n=2,Cn-1=3(Pn-1Pn-2)/hn-2

    3)已知邊界點處爲懸臂端。

        如果首端點爲懸臂端,則方程組第一個方程中a=1,b=1,C0=2(P1P0)/h0

        如果末端點爲懸臂端,則方程組最後一個方程中m=1,n=1,Cn-1=2(Pn-1Pn-2)/hn-2

    4)曲線爲閉合曲線,首末兩端點的位置、切矢、二階導數相同。

        方程組第一個方程和最後一個方程分別爲:

            2(h0 + hn-2)V0 + hn-2V1 + h0Vn-2 = 3(P1P0)hn-2/h0

            V0 - Vn-1 = 0

2.5.4 累加弦長三次參數樣條曲線

    實際應用中,累加弦長三次參數樣條曲線對於大撓度曲線的插值擬合效果較好。

    (1)給定n(n≥2)個有序的型值點Pi(i=0,1,…,n-1),建立累加弦長參數:

            hi = |PiPi+1|, s0 = 0,si+1 = si + hi,i=0,1,…,n-2

    由Hermite插值公式,第i段三次參數樣條曲線爲:

            Pi(t) = Pi(si+1 - t)2[2(t - si)+ hi]/ hi3

                    + Pi+1(t - si)2[2(si+1 - t)+ hi]/ hi3

                    + Pi(si+1 - t)2(t - si)/ hi2

                    + Pi+1(t - si)2(t - si+1)/ hi2

            ( t∈[si, si+1],i=0,1,…,n-2)

            Pi(t) = 6(Pi+1 - Pi)(si+1 - t)(t - si)/ hi3

                    + Pi(si+1 - t)(2si + si+1 - 3t)/ hi2

                    + Pi+1(t - si)(2si+1 + si - 3t)/ hi2

            Pi(t) = 6(Pi+1 - Pi)(si + si+1 - 2t)/ hi3

                    + 2Pi(3t - si - 2si+1)/ hi2

                    + 2Pi+1(3t - si+1 - 2si)/ hi2

    (2)建立連續方程組。和三次參數樣條曲線方程相同。

        用(u = t + si)代換可將累加弦長三次參數樣條曲線的方程轉換到三次參數樣條曲線方程。

2.6 二次參數樣條曲線

    給定n(n≥2)個有序的型值點Pi(i=0,1,…,n-1),並設一個參數分割t0<t1<…<tn-2<tn-1,稱P(t)爲二次參數樣條曲線,如果:

    (1)在每個區間[ti-0.5,ti+0.5]內,P(t)爲二次參數曲線,其中:ti-0.5=(ti+ ti+1)/2,t-0.5= t0,tn-0.5= tn-1,成爲半節點。

    (2)在整個區間[t0,tn-1],P(t)具有一階參數連續,即在半節點ti-0.5(i=1,2,…,n-1)處成立:

            P(k)(ti-0.5-0) = P(k)(ti-0.5+0) (k=0,1)

    (3)滿足插值條件P(ti) = Pi (i=0,1,…,n-1)。

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