计算建设性立体几何的体积

Compute the volume of a constructive solid geometry

我有一个构造性的椭圆体实体几何体,可以切割一个立方体。我需要计算多孔立方体的体积。我该怎么做?

总有愚蠢的近似解决方案。为此,您只需要一个判断函数是否一个点在椭圆体内。

保留一个魔方

  • 维度(可能只有一次在class之外,外维度)
  • 填充:状态:空、填充、混合
  • 如果混合8个子Cube-s
  • 有最小块大小

然后用椭圆体填充会分裂立方体,其中混合立方体(有点填充)需要分裂以进行更精确的计算。

算法本身可能会有所不同。重新缩放到 (0, 0, 0) - (2”, 2”, 2”) 可能会有用,因为这些块对 space.

进行了 ²log 除法

在这个计算结束时,有一个近似值,甚至知道误差范围(填充总和+混合总和的一半)。


一种方法是从整个多维数据集递归,检查与 8 个子多维数据集的重叠:

  • 当一个立方体的所有 8 个角都在椭圆体内时,它就被填充了,您不需要进一步递归到最小块大小。
  • 当所有8个角都在外面时并且椭圆体的中心不在里面,它是空的,递归结束。