3D空间中的哪些点形成面部+面部之间的角度?

时间:2012-01-09 05:07:48

标签: maxscript

你如何编写一个获得创建面部所需的三个点的Maxscript?

所以你有你的对象,说它有100个面孔。然后脚本应该告诉我每个面部的哪些点。

另外,我想知道两个相邻面相互之间的角度。

提前致谢

1 个答案:

答案 0 :(得分:0)

这些实际上是两个不同的问题,但这里有:

此函数将返回一个数组,该数组由面索引和一个point3值组成,描述创建该面的顶点的索引。

fn GetAllFaceVertices meshObj = 
(   
    for v = 1 to m.numVerts collect #(v, getFace v) 
)

此功能将返回两个面之间的角度。它通过获得每个面的法线然后返回两个法线的点积的反余弦来实现。

fn GetFaceAngles meshObj faceA faceB =
(
    local nA = getFaceNormal meshObj faceA
    local nB = getFaceNormal meshObj faceB
    acos (dot nA nB)
)

请注意,这两个函数都需要editable mesh个对象。如果您需要对editable poly对象进行操作,则有类似的方法使用polyop结构。