仅从顶点和单独的面创建边

时间:2012-12-12 01:24:38

标签: javascript graphics 3d

我需要尝试在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的边缘吗?

3 个答案:

答案 0 :(得分:0)

你是对的。面1将是(v1,v2,v3),面2将是(v2,v3,v4)等。

答案 1 :(得分:0)

是的,为每个面创建1到2,2到3和3到1的边将为您提供对象中的所有边。请注意,当在多个面中使用时,可能(并且可能会)重复某些边缘。

答案 2 :(得分:0)

我发现了要做什么,我拿了前两个顶点然后做了一个for循环来检查它们是否是我制作的边缘数组,如果不是那么只需将它们推到数组上,如果它们不是那么,并告诉我的面部结构采取for循环“i”值,如此

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;
                    }
            }

希望这可以帮助其他需要它的人:)