Math 从法向量中检索边

Math 从法向量中检索边,math,3d,Math,3d,我正在读取波前.obj文件,其中提供了法线。我希望手动计算切线 有什么方法可以检索创建法向量的边1和边2吗?如果有一个法向量,那么两条垂直边有无限多的选择——其叉积为法向量的向量的任意组合 您需要通过确定切线向量的方向来约束您的问题。这可能会帮助你回溯到那里。HTH,如果你有一个法向量,那么你的两条垂直边有无限多的选择——任何向量的组合,其叉积给出了法向量 您需要通过确定切线向量的方向来约束您的问题。这可能会帮助你回溯到那里。有关切线和双切线的介绍,请参见;如果您想了解更多详细信息,它们也会在页

我正在读取波前.obj文件,其中提供了法线。我希望手动计算切线


有什么方法可以检索创建法向量的边1和边2吗?

如果有一个法向量,那么两条垂直边有无限多的选择——其叉积为法向量的向量的任意组合


您需要通过确定切线向量的方向来约束您的问题。这可能会帮助你回溯到那里。HTH,

如果你有一个法向量,那么你的两条垂直边有无限多的选择——任何向量的组合,其叉积给出了法向量

您需要通过确定切线向量的方向来约束您的问题。这可能会帮助你回溯到那里。有关切线和双切线的介绍,请参见;如果您想了解更多详细信息,它们也会在页面底部作为附加参考

然而,你的问题是关于正常的

OBJ是一种索引格式,一个索引用于位置,一个(不同)索引用于法线(依此类推用于所有属性)

如果你有这样一条线:

f 0/10 1/11 2/12
,您有一个三角形的面(3个索引);位置索引为0,1,2(取决于您的obj文件,它在文件头中有描述)。要获取位置,请为位置数组编制索引:

vec3 vertexPos1 = positions[0]; // or more generically, positions[faceIndices[i++]]
vec3 vertexPos2 = positions[1];
vec3 vertexPos2 = positions[2];
EGDE是位置的三角洲:

vec3 edge1 = vertexPos2 - vertexPos1; // order is important
vec3 edge2 = vertexPos3 - vertexPos1;
法线是这些边的叉积:

vec3 normal = cross(edge1,edge2); // order important too
normalize(normal);
有关切线和双切线的介绍,请参见;如果您想了解更多详细信息,它们也会在页面底部作为附加参考

然而,你的问题是关于正常的

OBJ是一种索引格式,一个索引用于位置,一个(不同)索引用于法线(依此类推用于所有属性)

如果你有这样一条线:

f 0/10 1/11 2/12
,您有一个三角形的面(3个索引);位置索引为0,1,2(取决于您的obj文件,它在文件头中有描述)。要获取位置,请为位置数组编制索引:

vec3 vertexPos1 = positions[0]; // or more generically, positions[faceIndices[i++]]
vec3 vertexPos2 = positions[1];
vec3 vertexPos2 = positions[2];
EGDE是位置的三角洲:

vec3 edge1 = vertexPos2 - vertexPos1; // order is important
vec3 edge2 = vertexPos3 - vertexPos1;
法线是这些边的叉积:

vec3 normal = cross(edge1,edge2); // order important too
normalize(normal);

是的,我知道,但是因为法线是用标准化向量表示的。基本上只有1个边的组合可以提供法线。这就是我想要检索的。是的,我知道,但是因为法线是用标准化向量表示的。基本上只有1个边的组合可以提供法线。这就是我想要找回的。