0

我有一个位值(0 或 1)的 3 维数组,表示笛卡尔立方体的 X、Y 和 Z 轴(范围为 0-99)。整个数组初始化为全 0。

此外,我在该立方体内有一个三角形的点,由以下点标识。

TriangleA: [
15, 22, 11,
86, 76, 67,
45, 51, 91
]

将这三个点标记为 1 很容易。我的问题是这样的:

我如何将由该三角形标识的表面的所有其他坐标也标记为 1?

基本上我将如何实现该功能:

public bool IsOnSurfaceOfTriangleA(x, y, z) {

   // Math goes here! :)

}

任何帮助/建议将不胜感激。

4

2 回答 2

1

我会使用一个使用这个解决方案的循环。简单地确定最小和最大范围并在双循环中运行它们(从最小到最大)

于 2013-05-05T23:30:11.977 回答
0

我发现这个可以移植到 C# 的 MatLab 函数效果很好。现在我需要同时为一大堆网格执行此操作,因此我将在单独的问题中发布。感谢你的帮助!

http://www.mathworks.com/matlabcentral/fileexchange/22857-distance-between-a-point-and-a-triangle-in-3d

于 2013-05-06T17:45:21.357 回答