我需要尝试计算 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?
你是对的。 面 1 是 (v1,v2,v3),面 2 是 (v2,v3,v4),依此类推。
是的,为每个面创建从 1 到 2、2 到 3 和 3 到 1 的边缘将为您提供对象中的所有边缘。请注意,当某些边缘用于多个面时,可能会(并且可能会)重复
我找到了该怎么做,我取了前两个顶点,然后做了一个 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;
}
}
希望这有助于其他需要它的人:)