1

我正在尝试从体素中绘制一个平面,目标是填充它,但我遇到了很多麻烦。我尝试的一切都会导致表面出现孔洞。表面有 4 个角,但我也希望能够对三角形使用相同的方法。

这是我尝试过的:

  • 从平行的一侧拉到另一侧
  • 仅沿平面的一侧在一个方向(z 方向)上绘制

我在 2 上取得了最大的成功,但是当我在飞机上添加任何俯仰或滚动(存在任何高度)时它失败了。

有小费吗?没有代码,因为我确信我的实现都是正确的,只是算法的选择是错误的。

编辑:

附带说明一下,虽然 2 号的孔较少,但平面变形并且看起来不平坦。

编辑2:

我坚持我的第一个决定,但现在的问题是,我如何检测何时会有漏洞?通过观察,我注意到每个平面的孔数量相同,无论俯仰和滚动如何。Yaw是这里的罪魁祸首。

编辑3:

我把这个问题留了下来,但我决定只测试附近的一个街区,看看它是否是空的。我不想这样做,但是是的。如果您有更优雅的解决方案,我会全力以赴。

4

1 回答 1

1

平面是无限的,没有角。你说的是四边形吗?它有方角吗?

对于多边形,我当然会从三角形开始,因为您可以用三角形构造任何其他多边形,而不是相反。

然后,填充三角形的一个好的开始可能是对是否应该填充给定的体素进行准确的测试。是两个不同的三角点测试的示例。

之后,您可以以不同的方式进行操作。例如,虽然不是最有效的,但您可以从中心区域增长,测试每个相邻体素并使用堆栈递归。

于 2012-05-27T22:33:00.430 回答