gpt4 book ai didi

algorithm - 规则空间分割

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:11 28 4
gpt4 key购买 nike

我正在编写一个应用程序,它将一个 N 维轴对齐边界框分割为更小的 N 维边界框,我需要一个算法来执行此操作。
例如:

在一维中,“边界框”只是一个长度
例如{ 最小值=0,最大值=100 }
这将被分割为
{Min=0, Max=50} 和 {Min=50, Max=100}

在二维中,“边界框”是一个正方形
例如{最小值=[0,0],最大值=[100,100]}
将分为
{最小值=[0,0],最大值=[50,50]}
{最小值=[0,50],最大值=[50,100]}
{最小值=[50,0],最大值=[100,50]}
{最小值=[50,50],最大值=[100,100]}

等等,我所需要的只是对执行此操作的算法的描述,语言并不特别重要,因为一旦我知道如何去做,我就可以将其翻译成选择的语言(在本例中为 C#)

编辑::回应评论中的问题:

  • 分割必须始终相等(如在示例中)
  • 边界是 float ,所以被二整除不是问题

最佳答案

将其分解为两个问题:遍历“Min”点的网格,并为 Min 点构建一个小盒子。

对于第二种情况,{[0,0], [100,100]},deltaX=50 和 deltaY=50。网格是

[0,   0][0,  50][50,  0][50, 50]

从第一列构造第二列是微不足道的:

[ 0,  0] [ 50,  50][ 0, 50] [ 50, 100][50,  0] [100,  50][50, 50] [100, 100]

这里是三维情况 {[0,0,0], [100,100,60]},delta = [50, 50, 30]

[ 0,  0,  0] [ 50,  50, 30][ 0,  0, 30] [ 50,  50, 60][ 0, 50,  0] [ 50, 100, 30][ 0, 50, 30] [ 50, 100, 60][50,  0,  0] [100,  50, 30][50,  0, 30] [100,  50, 60][50, 50,  0] [100, 100, 30][50, 50, 30] [100, 100, 60]

关于algorithm - 规则空间分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396651/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com