Создание проверки, которая должна выйти из середины 3 переменных ( xyz )

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 мне не нравится) начать с позиции и зацикливаться на ней (включая саму позицию), пока не достигнет самых внешних границ куба.

Итак, если мы дали всему поддельные значения, давайте использовать 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.

Надеюсь, я дал достаточно подробностей и был бы рад, если бы кто-нибудь подкинул мне несколько фрагментов или работающий код, так как это расстраивает в течение последнего часа или около того. Я не хочу иметь 10 проверок if в середине цикла for или случайных вещей в этом роде, я ищу чистый способ сделать это.

5
задан Casper7526 26 February 2012 в 01:17
поделиться