从特定半径的3D网格中选择单元格

时间:2011-11-21 00:33:24

标签: c++

我今天遇到了一个小问题,似乎无法以有效的方式解决。给定球体的中心和半径,我想选择3D网格的所有单元格。

我有一个立方网格的单元格,它们都具有相同的尺寸,即立方体具有相同的宽度高度和深度,并且被分成子立方体(“单元”),每个子立方体具有相同的宽度高度和深度。

给定此网格中的3D位置,我想在球体半径内绘制此位置周围的所有单元格。部分包含在球体中的所有细胞都应包含在图纸中。

1 个答案:

答案 0 :(得分:1)

计算盒子角落与球体中心的距离:

sqrt(dx^2+dy^2+dz^2)

如果小于或等于你的半径,则绘制立方体......

(编辑:正如Oli评论你可以比较半径的平方来加速应用中的这个测试)

您只能考虑边界r x r x r cube中的多维数据集...

另见: fast sphere-grid intersection