Как мне получить вектор2 из индекса списка?

#java #list #arraylist #tile #chunks

Вопрос:

Допустим, у меня есть список массива с 32 объектами в нем, образующими 2d-карту размером 4×8.

И я хочу получить положение 12-го объекта. как мне получить вектор2? И помните, что у объектов нет вектора 2, я хочу получить позиции из индекса.

Комментарии:

1. неясно, что у вас есть и что вы пытаетесь сделать.

Ответ №1:

Если вы спрашиваете: «как мне рассчитать положение, например. 12-й объект на карте 4х8», то алгоритм выглядит примерно так:

(Я предполагаю, что vector2-это то, что содержит int, int как позиции x, y, а 0, 0-начало координат, и мы считаем плитки, начиная с 1):

 public class Test {

    private static final int xDimension = 4;

    public static void main(String[] args) {
        System.out.println(getPosition(1));
        System.out.println(getPosition(3));
        System.out.println(getPosition(4));
        System.out.println(getPosition(5));
        System.out.println(getPosition(12));
        System.out.println(getPosition(32));
    }

    public static Vector2 getPosition(int n) {
        int y = (n - 1) / xDimension;
        int x = (n - 1) % xDimension;
        return new Vector2(x, y);
    }

    public static class Vector2 {
        int x, y;

        public Vector2(int x, int y) {
            this.x = x;
            this.y = y;
        }

        @Override
        public String toString() {
            return "("   x   ", "   y   ")";
        }
    }
}
 

Выход:

 (0, 0)
(2, 0)
(3, 0)
(0, 1)
(3, 2)
(3, 7)