C# 将三维点云拆分为较小的定向边界框

C# 将三维点云拆分为较小的定向边界框,c#,wpf,point-clouds,bounding-box,helix-3d-toolkit,C#,Wpf,Point Clouds,Bounding Box,Helix 3d Toolkit,我在和C#WPF合作 有一段时间我在寻找一种算法来解决我的问题。也许它不是那么琐碎,而是进入了3D图形 我在3D空间中有一个2D曲面(也可以用点云表示) 我需要把这个表面分割成更小的部分,应该放在一个特定的盒子里(例如300 x 300 x 15) 我正在寻找一种在3d中工作的算法,它不是轴对齐的,类似于最小体积边界框,但如果体积大于特定体积,它会将体积分割成更小的框 我怀疑OBB的优化问题和大量迭代,但我不知道如何解决这个问题 这张图片稍微说明了这个问题。红色框和黑色框不强制轴对齐,它们应

我在和C#WPF合作

有一段时间我在寻找一种算法来解决我的问题。也许它不是那么琐碎,而是进入了3D图形

我在3D空间中有一个2D曲面(也可以用点云表示)

我需要把这个表面分割成更小的部分,应该放在一个特定的盒子里(例如300 x 300 x 15)

我正在寻找一种在3d中工作的算法,它不是轴对齐的,类似于最小体积边界框,但如果体积大于特定体积,它会将体积分割成更小的框

我怀疑OBB的优化问题和大量迭代,但我不知道如何解决这个问题

这张图片稍微说明了这个问题。红色框和黑色框不强制轴对齐,它们应<或=最大框大小(大小而非体积!)


谢谢大家的支持

众所周知,对于用圆盘覆盖形状的情况,您的问题是NP难问题:参见f.e。我强烈怀疑你的封面问题没有比这更好的了。所以你必须求助于近似精确的算法,在线性或多项式时间内完成这项工作。根据您在解决方案中可以牺牲的条件,您可以使用已知的解决方案完成完全不同的任务。所以,如果你解释一下你是如何完成这项任务的,你想解决的真正任务是什么,那么我们可以讨论一下,对于你的案例,什么近似解足够好

例如,如果你擅长用次优大小和方向(但足够好)的定向框对点集进行次优(但足够好)覆盖,那么你可以使用一些涉及生成ε网的快速算法(参见f.e.和)和/或贪婪地将点集细分为子集,并对每个子集使用足够好的定向边界框的贪婪近似


此外,我自己还没有在实践中使用它,但如果我必须考虑你的任务的近似解,知道你对该解的限制,我会考虑它作为一种框架方法,用于生成类似于你的任务系列的近似解。看一看,也许你看到了一些对你来说非常有用的东西,或者你看到了google ready to use solutions中有用的词。

你可以创建自己的集合,其中包含列表的boundList,在添加新点时,你应该检查是否有boundBoxlist,可以在其中容纳你的新点,如果有,添加到限制它的集合,如果没有,创建新集合,将它的边界设置为实际值lx/Y/Z/除以300/300/15并添加新点。您可以尝试继续提问,因为您的问题似乎不是特定于编程的问题。