2015-11-27 110 views
0

我有一些點象下面這樣:如何獲得路徑的輪廓?

  1. [[1,4],[2,8]
  2. [[5,4],[3,8],[5,4]

然後我做了一條線(經緯度說寬度爲2),我想要得到該線的輪廓(路徑),請參閱示例圖像的黑線。

在一個世界上,我有牆角的座標,我想要弄清楚牆的輪廓路徑(在示例圖像中,紅色部分是座標,黑色線是我想要的)

Example Image

回答

0

我一直在研究類似的項目。我決定使用矢量來獲得沿路徑的平行線,方法是獲取UP矢量和點1到2的矢量的叉積,這會得到一個指向遠離可用於獲取開始和平行線的終點

CVec3 a, v1, v2, zero, up(0, 1.0f, 0); 
zero.set(0,0,0); 

v1.sub(points[1], points[0]); 
v2.sub(points[2], points[1]); 
a.crossProduct(up, v1); 
a.normalise(); 

result[0] = result[1] = a; 
result[0].mult(wallwidth).add(points[0]); 
result[1].mult(-wallwidth).add(points[0]); 
result[2].set(result[0]).add(v1); 
result[3].set(result[1]).add(v1); 

結果[0]至導致[2]是在一側線,而結果[1]〜導致[3]將是另一個。我還沒有弄清楚如何連接這些線條,以便在不改變線條寬度的情況下製作角落