#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)