我有一个长方体列表,由它们的左下角和右上角的坐标定义,边缘平行于轴。坐标是双精度值。这些长方体密集排列,会与一个或多个其他方体重叠,甚至完全包含其他方体。
我需要计算所有给定长方体所包含的总体积。重叠(甚至多次)的区域应该只计算一次。
例如,卷:
- ((0,0,0) (3,3,3))
- ((0,1,0) (2,2,4))
- ((1,0,1) (2,5,2))
- ((6,6,6) (8,8,8))
总体积为 27 + 1 + 2 + 8 = 38。有没有简单的方法可以做到这一点(在 O(n^3) 时间内或更好?)?