测试四面体是否位于多面体中


15

我有一个四面体 和一个多面体。受限制,使其始终与共享所有顶点。我想,以确定是否的谎言里面t p ptpt p

我想在问题上添加一个细节,以防可能对解决方案有所帮助:是Delaunay四面体,面是三角形,并且相对于顶点都是Delaunay。四面体是德劳内如果外接球的顶点包含在它里面没有其他的顶点。A面是强烈德洛奈如果存在其表面上含有该面的顶点,但没有其他顶点一个外接球内部的。tpp

下图显示了空间中的相同问题: 2D

原始多边形p

在此处输入图片说明

的顶点的Delaunay三角剖分p

在此处输入图片说明

对三角形进行内部/外部测试的结果t(阴影三角形位于 ,其余三角形位于外部):p

在此处输入图片说明

所需结果(三角形外部修剪)

在此处输入图片说明


我最初的问题是在3D空间中,因此上图中的三角形转换为四面体,多边形转换为任意多面体。我已经弄清楚了这个问题的一些表述:ptpp

公式1
的唯一可以在之外的部分是它的边缘和三角形面,但通常可能存在一个,其表面上所有的外部都具有边,因此,也可以将此问题公式化为:测试四面体是否存在位于之外的面?p p t t ptpp tt p

公式2
对于这个问题,我还有另一种可能的观点,但是缺乏任何正式的想法:从
几何学上讲,如果在外部,那么它将始终粘附在的外表面上。因此,如果我们可以计算等高线(非正式地是外边界) 和使得和是的顶点集,则如果位于。 tC ^ V Ç V p V = V V p V V pp C ^ V = C ^ V pppCVCVpV=VtVpVt,Vpt,pCV=CVp tp

我想知道:

  • 如何解决配方1配方2
  • 还是有完全不同的方法来解决这个问题?

更新:
我现在意识到可以将这个问题简化为多面体问题中的Point。由于外部四面体将至少有一个面位于之外,因此该面上的任何任意点(通常不包括其顶点)都将始终位于之外。因此,对于每个面,我需要取一个任意点并测试该点是否位于之外p p ptp pt p

多边形文章的角度,我开始了解射线投射算法缠绕数算法。对于点位于的表面的情况,射线投射在数值上不稳定。但是绕组数算法的数值鲁棒性尚未解决。 p

基于以上所述,我的核心问题现在似乎是(请提出是否应该将其作为一个单独的问题提出):
是否存在针对多边形问题中的点的数值鲁棒算法?


只是为了澄清一下:1)多面体可以是非凸的吗,以及2)如果和共享一个面或边(或一部分的一部分),这是否会使不符合 “内部”条件?(显然,根据您的要求,必须允许和共享顶点。)p p pptptptp
Ilmari Karonen 2014年

@IlmariKaronen 1)是2)。没有,据我可以想像,之间的唯一区别内部外部四面体将是它的非共享面/边缘将位于如果是外部和如果是内部(如我也下提及制剂1)。顺便说一句,“ ...或其中一部分...”是什么意思?p ptptp
普拉纳夫2014年

1
两个共面或共线边缘可能仅部分重叠。即使本身没有重合的面或边,只要它具有两个以上共线的顶点或三个以上共面的顶点,就可能发生这种情况。p
Ilmari Karonen 2014年

1
非凸性的奇怪之处在于,所有顶点都可以位于多面体内部,而四面体可以位于外部(因为边缘不必整体位于内部)。可能的算法,看看边缘(多面体和四面体之间)是否可以有交点=>四面体位于外部的概率很大
Nikos M.

1
您是否看到过Gilbert–Johnson–Keerthi距离算法?您首先需要将多边形/多面体分解为凸形(如您所指出的,单纯形复数将完成此工作)。众所周知,GJK非常稳定且非常快。
别名

Answers:


2

我最近在此处找到 Alec Jacobson等人的论文“使用广义绕组数进行稳健的内外分割” 。它解决了使用广义绕组数概念确定点是否位于任意(具有自相交,非流形,开放表面等的)多边形网格的内部(或外部)的问题。

tp


ptpptppttp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.