vtktriangle 使用 python 从任意点计算法线

vtktriangle compute normal from arbitrary points with python

我正在为 VTK 使用 python 包装。我希望我的脚本让用户选择三个任意点和 return 一个带有法线信息的三角形。在 VTK VTK Triangle 参考中有 vtkTriangle::ComputeNormal (double v1[3], double v2[3],double v3[3],double n[3])。 我检查了关于 vtkTriangle 的 Cxx 实现示例,但是,我不明白如何在 Python 中实现它。 n[3] 代表正常吗?如果是这样,它应该作为输入参数是什么?

@g.stevo 我明白了。但是,当我给方法 ComputeNormal returns None 一个随机值时。为了更清楚,您可以在下面找到相关代码的片段:

`p0 = trianglePolyData.GetPoints().GetPoint(0)
 p1 = trianglePolyData.GetPoints().GetPoint(1)
 p2 = trianglePolyData.GetPoints().GetPoint(2)
 print vtk.vtkTriangle().TriangleArea(p0,p1,p2)
 n=[0.0,0.0,0.0]
 print vtk.vtkTriangle().ComputeNormal(p0,p1,p2,n)`

您的代码正在运行。您要查找的结果在数组 n 中。函数ComputeNormal returns void,根据documentation.

试试这个:

n=[0.0,0.0,0.0]
vtk.vtkTriangle().ComputeNormal(p0,p1,p2,n)
print n