我在3D空间中有很多长方体,每个长方体的起点都是(x,y,z),大小为(Lx,Ly,Lz)。我想知道如何在这个3D空间中找到长方体联合中包含的最大立方体。是否有一种有效的算法?
例如,如果我有以下长方体:
- 以(0,0,0)开始且大小为(10,10,10)的长方体,
- 长为(10,0,0)且大小为(12,13,15)的长方体,
- 大小为(10,10,10)的(0,10,0)的长方体,
- 大小为(10,10,10)的(0,0,10)的长方体,以及
- 大小为(9,9,9)的(10,10,10)长方体。
然后,这些长方体并集中包含的最大立方体将是一个以(0,0,0)开始且大小为(19,19,19)的立方体。
这个问题的更一般的版本:
给定R d中盒子的集合,找到盒子并 集内包含的最大超立方体。
8
我认为里面隐藏着一个更好的问题:即,给定的盒子的并集,计算该并集内包含的最大超立方体。
—
Suresh Venkat
这些长方体可以重叠吗?
—
彼得·布斯
@Suresh,感谢您澄清和概括问题:) @Peter,就我而言……不会重叠:)
—
pantoffski 2011年
您的感受方式听起来像是立方体的侧面与x,y和z轴对齐。是这种情况,还是立方体可以具有任意方向?显然,这大大提高了算法的效率。
—
Joe Fitzsimons
在我的情况下,每个长方体的面都仅与轴正交。
—
pantoffski 2011年