2012-12-12 83 views
0

我需要嘗試和鍛鍊邊緣在OBJ文件中使用,現在OBJ文件不包含邊緣,因此僅使用頂點和麪,我需要創建邊符合我的模型結構。從頂點創建邊緣和僅僅臉部

如何僅使用面創建邊?

頂點數據的片斷

v 1.6946 0.0000 -39.7987 //V1 
v 8.5498 6.3593 -32.5369 //V2 
v 10.1957 0.0000 -38.6795 //V3 
v 1.6946 6.3593 -33.4394 //V4 
v 6.9039 -0.0000 -26.3943 //V5 

面部數據

f 1 2 3 
f 1 4 2 
f 4 5 2 
f 4 6 5 

所以面臨1的片段是由頂點1,2和3 我應該只是創建邊緣即,1至2,2到3和3到1?

回答

0

你是對的。面1將是(v1,v2,v3),面2將是(v2,v3,v4)等。

0

是的,爲每個創建1到2,2到3和3到1的邊你的面孔會給你所有的物體邊緣。請注意,當它們在多個面中使用時,可能會(也可能會)重複某些邊。

+0

我不認爲這會事,因爲我只是試圖將模型粘貼到我的結構中,以便我可以使用我的方法:) – Canvas

+0

什麼是刪除重複項的好方法? – Canvas

0

我找到了做什麼,我拿走了前兩個頂點,然後做了一個for循環來檢查它們是否是我製作的邊緣數組,如果不是那麼只是將它們推到數組上,如果它們是不,告訴我的臉結構走的循環「我」的價值,像這樣

var tempVer1 = faces[i][0]; 
      var tempVer2 = faces[i][1]; 

      tempEdge1 = tempEdges.length; 
      var change = false; 
      for(k=0;k<tempEdges.length;k++) 
      { 
       if(tempEdges[k][0] == tempVer1 && tempEdges[k][1] == tempVer2) 
        { 
        change = true; 
        tempEdge1 = k; 
        } 
        else if(tempEdges[k][0] == tempVer2 && tempEdges[k][1] == tempVer1) 
        { 
        change = true; 
        tempEdge1 = -k; 
        } 
      } 

希望這有助於任何人都需要它:)

相關問題