2014-06-27 22 views
0

我有此: 一組邊,其中一個邊緣包含:從連接貝塞爾路徑的曲線圖找到所有的非重疊區域

  • conected貝塞爾曲線的矢量(幾何形狀)
  • 到neihboor一組指針的每個端部邊緣
  • 指針鄰近邊緣(在begining空)的兩個區域

    類邊緣{ 向量的鄰居[2]; 地區*地區[2]; 貝塞爾路徑幾何; }

有在平面 我想找到所有由

例如邊緣包圍的面的不重疊的區域不相交的邊緣: http://i.stack.imgur.com/s31QG.png

你知道一個算法來做到這一點?

回答

0

我假設「貝塞爾曲線」的意思是「三次貝塞爾曲線」。

三次貝塞爾曲線的參數方程如下。

B(U, t) = U * w(t)   (2x1 column vector) 

U = [U1 U2 U3 U4]   (2x4 matrix) 

     [ (1-t)^3  ] 
w(t) = [3 * (1-t)^2 * t ] (4x1 column vector) 
     [3 * (1-t) * t^2] 
     [    t^3] 

U的四列向量是一條三次貝塞爾曲線上的四個連續點。

給定兩個三次Bezier曲線B(U, t)B(V, t),要確定是否有在[0,1]這樣B(U, t0) = B(V, t1)存在任何t0t1。那些是你的交點。

要求解該方程,需要求解兩個3次,2變量多項式系統的根。如果您查看這些根中的所有不同的t0值,那麼這將告訴您您的三次貝塞爾曲線的所有交點B(U, t)B(V, t)