2

最近,我们的团队面临着在平面和一些 3D 几何体(三角形集)之间构建 2D 切片的任务。谷歌并没有像我们希望的那样有帮助,所以我们把注意力转向这里,看看是否有人遇到过这个问题并提供可能的解决方案。也需要链接。

找到交点本身并不是一项艰巨的任务,但确保正确生成三角形并使用正确的角构成是与我们一起玩艰难的游戏。我们只是缺乏从任意模型构建三角形的数学/理解。

如果您在理解我们正在尝试做的事情时遇到问题,请想象一下这种情况:

将兔子模型加载到程序中。接下来,“激光”穿过太空,将兔子切成两半。激光切割的那个薄片就是我们想要生成的切片。它应该是一个二维三角形集。如果激光不适合你(没有双关语),想想刀,飞机,任何能在飞机上切东西的东西。

提前致谢。

4

3 回答 3

2

如果您未绑定任何特定软件,请在 ParaView (paraview.org) 或 ParaViewGeo (paraviewgeo.mirarco.org) 中打开您的数据集。

两者都有一个名为 Slice 的过滤器,它完全符合您的要求,并且都允许您将数据保存回来。

ParaViewGeo 支持勘探/采矿/地质行业常用的数据格式(GoCad、DataMine 等),这是这两款软件之间唯一真正的区别。

这些软件包中还有许多其他可用的过滤器,您可能会觉得有趣,例如剪辑(将您的兔子切成两半并查看其中的一半)和阈值(假设您为兔子的某些部分分配了值,例如区域 id 之类的)耳朵、鼻子、眼睛、脚等,您可以设置“阈值”,以便只留下这些部分以供查看)

于 2008-12-13T00:22:03.173 回答
1

我真的不知道你所说的“角落组合”是什么意思,但我想这是为了获得不太尖锐的三角形。

我还想您的问题可以抽象为轮廓的三角剖分?

如果是这样,我相信你可以在网上找到很多方法。

我会尝试的一种方法是:

  1. 用点填充轮廓。点的密度应反映轮廓上点的密度。更好的是,当您离开中心时,密度应该会降低。
  2. 使用 Delaunay 三角剖分进行三角剖分(QHull提供了高效的实现)

对于第一点,飞镖算法应该可以解决问题,并使用可变密度来优化第二步。这意味着:您投掷“飞镖”以找到您的积分,但如果飞镖最终离它的邻居太近,您将其移除并扔一个新的。

于 2008-10-16T11:08:50.550 回答
0

平面和三角形的交点是线段或什么都不是(忽略三角形正好在平面内的退化情况)。

所以你的激光/刀扫描/切片兔子模型三角形的结果是线段的集合。我不确定您如何/为什么期望得到一个“二维三角形集”。

如果您想获取由这些线段形成的(可能是非凸的)多边形并用三角形“填充”它们,CGAL 的多边形工具可能会完成这项工作(我的猜测是该页面上的几张图片是什么就像你想要达到的目标)。

于 2008-10-16T12:32:50.490 回答