我今天遇到了一个小问题,我似乎无法有效地解决它。给定球心和半径,我想选择 3D 网格的所有单元格。
我有一个立方体单元格网格,它们都具有相同的尺寸,即立方体具有相同的宽度高度和深度,并被分成子立方体(“单元格”),每个子立方体也具有相同的宽度高度和深度。
给定此网格内的 3D 位置,我想在球体半径内绘制此位置周围的所有单元格。部分包含在球体中的所有单元格都应包含在绘图中。
最佳答案
计算盒子的角点到球体中心的距离:
sqrt(dx^2+dy^2+dz^2)
如果小于或等于你的半径绘制立方体...
(编辑:正如 Oli 评论的那样,您可以与半径的平方进行比较以加快应用程序中的此测试)
您只能考虑边界 r x r x r 立方体内的立方体...
关于c++ - 从特定半径的 3D 网格中选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206046/