如何从列表索引中获取向量2?

4urapxun  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(355)

假设我有一个arraylist,其中包含32个对象,形成了一个4x8的2d tilemap。
我想得到第12个物体的位置。如何获得矢量2?记住,对象没有矢量2,我想从索引中获取位置。

8i9zcol2

8i9zcol21#

如果您问的是“如何计算4x8Map中第12个对象的位置”,则算法如下:
(我假设向量2包含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)

相关问题