我有一个 22X12 map ,定义为颜色网格。我有七个可能出现在该网格上的对象。每个对象都有一小部分颜色,范围从 4X1 到 2X2。是否有任何类型的数学或关键字我可以继续找出如何将较小的数组放入较大的数组中,覆盖较大的数组值?
为了给出一个小例子来说明我想要完成的任务,我将使用更大的整数映射和更小的整数数组以及我想要的输出。
map :
1 1 1 1 1 1
1 0 0 0 0 1
1 0 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
较小的数组:
1 0
0 1
数组放置后的映射:
1 1 1 1 1 1
1 0 1 0 0 1
1 0 0 1 0 1
1 0 0 0 0 1
1 1 1 1 1 1
我只需要一个开始的地方。是否有我可以查找的线性代数概念,或者是否有任何技术可以完成此类事情?我正在努力确定如何去做这件事。谢谢。
最佳答案
public static void main (String[] args) {
int[][] bigMap = new int[][] {
{ 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1 }
};
int[][] smallMap = new int[][] {
{ 1, 0 },
{ 0, 1 }
};
overwriteArray(bigMap, smallMap, 1, 1);
// print out the 2d array
for (int i = 0; i < bigMap.length; i++) {
for (int j = 0; j < bigMap[0].length; j++) {
System.out.print(" " + bigMap[i][j]);
}
System.out.println();
}
}
static void overwriteArray(int[][] big, int[][] small, int x, int y) {
for (int i = 0; i < small.length; i++) {
for (int j = 0; j < small[i].length; j++) {
big[x+i][y+j] = small[i][j];
}
}
}
关于java - 用小数组替换大数组或映射的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568331/