for (int ix = x - r; ix < x + r + 1; ix++) {
for (int iz = z - r; iz < z + r + 1; iz++) {
for (int iy = y - r; iy < y + r + 1; iy++) {
// if ix,iy,iz = something blah blah (this part isn't needed)
}
}
}
好的,现在问题来了。上面的当前代码获取 x、y、z 和 r(范围)。它的工作是通过“立方体”进行引用,直到满足我设置的某个条件。问题在于它从立方体的外侧开始,基本上从一个角到另一个角。
我正在寻找一种方法(我的数学/java 不喜欢我 atm)从一个 pos 开始并从该 pos(包括 pos 本身)向外循环,直到它到达立方体的最外层边界。
所以如果我们给所有的东西都是假值,让我们使用 x = 5, y = 5, z = 5, r = 2 代码应该检查 5,5,5 - 4,5,5 6,5,5 5,6,5 5,4,5 等基本上从中心向外迭代每一件事。
该命令称为 FindNearest,但从技术上讲,它的作用类似于 FindFurthest atm。
我希望我提供了足够的细节,并且希望有人可以向我扔一些片段或工作代码,因为这在最后一个小时左右令人沮丧。我不想在 for 循环或类似的随机东西中间进行 10 个 if 检查,我正在寻找一种干净的方式来执行此操作。