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

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

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

8i9zcol2

8i9zcol21#

如果您问的是“如何计算4x8Map中第12个对象的位置”,则算法如下:
(我假设向量2包含int,int作为x,y位置,0,0是原点,我们从1开始计算分幅):

  1. public class Test {
  2. private static final int xDimension = 4;
  3. public static void main(String[] args) {
  4. System.out.println(getPosition(1));
  5. System.out.println(getPosition(3));
  6. System.out.println(getPosition(4));
  7. System.out.println(getPosition(5));
  8. System.out.println(getPosition(12));
  9. System.out.println(getPosition(32));
  10. }
  11. public static Vector2 getPosition(int n) {
  12. int y = (n - 1) / xDimension;
  13. int x = (n - 1) % xDimension;
  14. return new Vector2(x, y);
  15. }
  16. public static class Vector2 {
  17. int x, y;
  18. public Vector2(int x, int y) {
  19. this.x = x;
  20. this.y = y;
  21. }
  22. @Override
  23. public String toString() {
  24. return "(" + x + ", " + y + ")";
  25. }
  26. }
  27. }

输出:

  1. (0, 0)
  2. (2, 0)
  3. (3, 0)
  4. (0, 1)
  5. (3, 2)
  6. (3, 7)
展开查看全部

相关问题