3d 如何从平面交点的三维几何体中提取二维切片?

3d 如何从平面交点的三维几何体中提取二维切片?,3d,geometry,2d,geometry-slice,3d,Geometry,2d,Geometry Slice,最近,我们的团队面临着在平面和一些三维几何体(三角形集)之间构建二维切片的任务。谷歌并没有像我们希望的那样提供帮助,所以我们把注意力转移到这里,看看是否有人遇到了这个问题,并提出了可能的解决方案。链接也需要 寻找交叉点本身并不是一项艰巨的任务,但确保正确生成三角形和正确的角点组合是一项艰巨的任务。我们只是缺乏数学/理解如何从任意模型构建三角形 如果您在理解我们要做的事情时遇到问题,请想象以下场景: 程序中加载了一个兔子模型。接下来,一束“激光”穿越太空,将兔子切成两半。激光切割的薄片就是我们想要

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

寻找交叉点本身并不是一项艰巨的任务,但确保正确生成三角形和正确的角点组合是一项艰巨的任务。我们只是缺乏数学/理解如何从任意模型构建三角形

如果您在理解我们要做的事情时遇到问题,请想象以下场景:

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


提前谢谢。

我真的不知道你说的“角合成”是什么意思,但我想这是为了获得不太锋利的三角形

我想你的问题也可以抽象为等高线的三角剖分

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

我会尝试的一种方法是:

  • 用点填充轮廓。点的密度应反映轮廓上点的密度。更妙的是,当你离开中心时,密度会降低
  • 使用Delaunay三角剖分进行三角剖分(提供有效的实现)

  • 对于第一个点,飞镖投掷算法应该做到这一点,使用可变密度来优化第二步。这意味着:你抛出“省道”来找到你的点,但是如果省道离它的邻居太近,你就把它移除并抛出一个新的。

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

    因此,激光/刀扫描/切片兔子模型三角形的结果是线段的集合。我不确定您希望如何/为什么得到一个“2D三角形集”


    如果你想拍摄由这些线段组成的多边形(可能是非凸多边形)并用三角形“填充”,你可以做这项工作(我猜该页面上的两张图片与你试图实现的内容类似)。

    如果你没有绑定到任何特定的软件,请在ParaView(ParaView.org)中打开你的数据集或者ParaViewGeo(ParaViewGeo.mirarco.org)

    两者都有一个名为Slice的过滤器,它完全符合您所说的内容,并且都允许您将数据保存回原处

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


    这些软件包中还有许多其他过滤器,您可能会感兴趣,例如Clip(将兔子切成两半并查看其中一部分)和Threshold(假设您为兔子的某些部分指定了值,例如区域id,如耳朵、鼻子、眼睛、脚等,您可以设置“Threshold”,以便只剩下这些部分进行查看)

    一定要先试试Delaunay。