2012-09-06 96 views
8

(後續的this question。)連接兩個貝塞爾曲線平滑(C2連續)

鑑於三次貝塞爾曲線的順序,我怎麼能修改他們最低限度,使他們在C2連續的方式加入?

輸入:

  • 曲線P與控制點P0P1P2,與控制點P3
  • 曲線Q Q0Q1Q2Q3
  • ,如果有幫助,你可以假設他們已經是C1連續了。

限制條件:

  • C0連續性:P3 = Q0
  • C1連續性:P2 - P3 = Q0 - Q1
  • C2連續性:P1 - 2*P2 + P3 = Q0 - 2*Q1 + Q2
  • 改性曲線儘可能接近到原始曲線P和Q

回答

3

獲取m儘可能接近原始曲線的曲線可以有多種解釋,但可以認爲保持遠離連接點的終點和切線可以適合。所以點P0,P1,P3 = Q0, Q2,Q3是恆定的。

我們可以改變原點,P3 = Q0 = 0,執行C2連續性可以被表示爲:

P1 - 2*P2 = 2*Q1 + Q2 

人們可以表達複雜的交涉P2=a*e^i*rQ1=b*e^i*r(保持相同的角度約束了C2的連續性計算

(P1 - Q2)/2 = c*e^i*s 

強制C2連續性應當選擇r=s,並尋找和a組合b使得a+b =c。有無限多的解決方案,但可以使用啓發式方法,如果它是最小的(因此產生較少的明智變化),則更改a

如果這還不足夠產生小的變化,嘗試了兩步優化:首先更改P1Q2獲得s接近r,然後應用上面的步驟。