2017-09-06 149 views
3

我正在使用C#WPF。将3D点云分解为更小的定向边界框

这是我在寻找一种算法来解决我的问题了一会儿。可能它并不是那么简单,而是进入3D图形。

我具有在3D空间中的2D表面(也可以通过点云表示)。

我需要该表面分裂成更小的比特,其应装配到特定盒(对于为例300×300×15)。

我在寻找,在3D这是不轴线对齐,就像一个体积最小边框但如果盒子是不是比体积较大的分割占据的体积为更小的盒子工作的算法。

我怀疑OBB的优化问题和大量重复的,但我不知道该如何处理这个。

图片说明了一点问题。红色和黑色方框不必强制轴对齐,它们应该是<或=到最大框尺寸(尺寸而不是体积!)。

picture

谢谢大家的支持!

+0

您可以制作自己的Collection,其中包含列表的boundList,并且在添加新的点时,您应该检查是否存在可以适合您新点的boundBoxlist,如果是,则添加到绑定它的集合,如果没有,创建新的集合,将其设置为actualX/Y/Z /除以300/300/15并添加新点。 – sTrenat

+0

你可以试试[数学stackexchange](https://math.stackexchange.com),因为它似乎是你的问题不是一个编程特定的问题。 – dymanoid

回答

0

您的问题是已知的NP-硬覆盖使用磁盘的形状的情况下:见F.E. https://en.wikipedia.org/wiki/Geometric_set_cover_problem。我强烈怀疑你的设置封面问题的情况是没有更好的。所以你不得不求助于线性或多项式时间的近似精确算法。根据您在解决方案中可以牺牲的条件,您可能会用已知的解决方案完成一项完全不同的任务。所以,如果你解释了你是如何完成这项任务的,你想要解决什么是真正的任务,那么我们可以讨论一下近似解决方案对你的情况是否足够好。例如,如果你对于具有次优化大小和方向的定向盒(但足够好)的点集具有次优(但足够好)的覆盖,那么你可以使用一些快速算法来进行生成epsilon网络(参见fe https://en.wikipedia.org/wiki/%CE%95-net_(computational_geometry)https://en.wikipedia.org/wiki/Delone_set)和/或贪婪地将点集合细分为具有针对每个子集的足够好的定向边界框的一些贪婪近似的子集。

而且,我也尚未使用它自己的做法,但如果我不得不想想你的任务知道在解决你的约束近似解,我会跟https://arxiv.org/abs/1409.7425沿觉得这是应该作为一个框架的方法用于生成类似于您的任务系列的近似解决方案。看一看,你可能会看到一些明显对你有用的东西,或者你可能看到有用的词汇,以便Google准备好使用解决方案。