2015-02-16 5 views
-2

То, что я пытаюсь сделать, - это эффективно прорезать три плоскости в трехмерном мире на основе выбора.Эффективно проходить через X, Y и Z?

Единственное, что я могу думать, является основным for loop (как показано на рисунке):

for (int x = x1; x < x2; x++) { 
    for (int y = y1; y < y2; y++) { 
     for (int z = z1; z < z2; z++) { 
... 

Проблема с этим, если у меня есть две координаты отмечены (59, 23, 72) & (59, 25, 89), проблема заключается в том, что он проверяет x1 (59) меньше, чем x2 (59), который там не будет никакой разницы, поэтому остальные петли не работают, хотя разница в их значениях.

я могу думать о двух других подходов, которые я не пробовал раньше, и я не знаю, как:

  • Vector3i[] - каким-то образом установить координаты в список, затем петлю через это.
  • int[][][] - У меня нет опыта работы с многомерными массивами.

И все же, с обоими этими методами, я могу как-то увидеть, так как у меня все еще будет такое же значение для проблемы [x, y, z].

Как я могу эффективно прокручивать выбранную область, если два значения плоскости одинаковы?

+4

Не можете ли вы просто использовать '<=', или я что-то упустил? –

+0

@ChristianMann Приношу свои извинения. Это из моей области того, что я привык делать, и я всегда находил, что '<=' была плохой практикой. Он работает, так что спасибо. – CoderMusgrove

ответ

0

Ответ предоставлен Christian Mann в использовании <= вместо <. Это из моего обычного комфорта, так что это никогда не приходило мне в голову.

спасибо.

Смежные вопросы