我在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年