欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

有关数组中第二维的索引值疑问??

程序员文章站 2024-02-13 22:17:40
...
问一个弱弱的问题
比如有上下两列图片,没列有三个大小相同的图片,我想问上列当中第二个图片对象的第一维索引值和第二维索引值是什么?

因为连连看游戏代码中看到如下两端代码,有点不清楚数组方面的基础知识。

// 该对象在Piece[][]数组中第一维的索引值
private int indexX;
// 该对象在Piece[][]数组中第二维的索引值
private int indexY;


回复讨论(解决方案)

0和1呗。。。

你看到的不是php代码

piece.setBeginX(piece.getIndexX() * imageWidth
+ config.getBeginImageX());
piece.setBeginY(piece.getIndexY() * imageHeight
+ config.getBeginImageY());

比如两列图是从坐标(0,0)开始,且每个图片长于宽都是5,
那上面代码中上列的第二张图片的左上角的x坐标和y坐标算出来是0和15。

但结果应该是5和10才对啊

没有上下文,无法解释

很晕
1.你说的行还是列啊?从你说“上下”感觉是说行,但后面的坐标却像竖排的列
2.下标一般习惯从0开始,就是(这个是序号,和下面坐标不同,分清)
(0,0) (0,1)...
(1,0) (1,1)...
上面是一维是行,二维是列;如果一维是列,二维是行,则位置图变成
(0,0) (1,0)...
(0,1) (1,1)...
有少数人则喜欢从1开始,要看清程序

如果左上角是[0,0]坐标,那你说的[5,10]是(2,1)位置的左上角,[0,15]则在(3,0)的位置??这里用的是先行后列的位置表示

不好意思,是上下两行,每行有三个相同的图片,每个图片的长度和宽度都是5

现在这二维数组在坐标上的位置是下行的第一个图片紧贴在X坐标和Y坐标上(该图片的左下角的坐标是(0,0))

我的问题:上行当中第二个图片对象的第一维索引值和第二维索引值是什么?

因为如下连连看代码中图片对象在数组中的第二位的索引值这个不是很清楚

// 该对象在Piece[][]数组中第一维的索引值
private int indexX;
// 该对象在Piece[][]数组中第二维的索引值
private int indexY;

按[y][x]组织时
[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]

按[x][y]组织时
[0][0] [1][0] [2][0]
[1][0] [1][1] [2][1]

可以看到,数组中将原点放在左上角。所以图片也应该将原点放在左上角,这样分析、计算起来才方便
如果将图片的原点放在左下角,则有 y' = h - y
即坐标系有一个垂直翻转

上行当中第二个图片对象的第一维索引值和第二维索引值是什么?

是0和1吗?

是 0 行 1 列

就是0 1吧。

按[y][x]组织时
[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]

按[x][y]组织时
[0][0] [1][0] [2][0]
[1][0] [1][1] [2][1]

上面这段不是很清楚啊,为什么会这样

上面是按[y][x]组织时 还是 按[x][y]组织时 ?

如何组织数据是根据你的需要
你可以 x,y (列,行)
也可以 y,x(行,列)

这个问题还没弄清啊?以为老徐能把你说明白

坐标是固定的x,y

但数组下标是写程序的人定的,可以是m,n也可以是n,m(m表示行,n表示列)
m或n的最小值(也就是第一行/列的下标)也是写程序的人自己定,遍历的时候自己注意从最小值开始就行

如果一维是列,二维是行,则位置图变成
(0,0) (1,0)...
(0,1) (1,1)...

按[x][y]组织时
[0][0] [1][0] [2][0]
[1][0] [1][1] [2][1]

为什么一维是列,二维是行 这么排序呢?

按照常理不是一维是行,二维是列吗?

按数学中的坐标描述
x 横轴
y 纵轴
坐标点表示为 (x,y)

这就是常理!