我想弄清楚從二維數組中切出一個二維數組區域的方法。我將如何從另一個二維數組中提取二維數組區域
我正在尋找一種有效的方法來創建從座標位置(4,5)到(7,10)的另一個2D數組。你在數組中看到1的區域。
var arr = [
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,1,1,1,1,1,0],
[0,0,0,0,0,1,1,1,1,1,0],
[0,0,0,0,0,1,1,1,1,1,0],
[0,0,0,0,0,0,0,0,0,0,0],
];
var successfulCropOfArray = [
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1]
];
有沒有人有任何僞代碼可用於如何完成此操作。以下是我很少嘗試沒有成功:
var slicedMap = Create2DArray(visibleMap);
var topLeftCorner = {
x: 4,
y: 5
};
var bottomRightCorner = {
x: 10,
y: 7
};
for(var left = topLeftCorner.x;left<bottomRightCorner.x;left++) { //from left to right scan
for(var top = bottomRightCorner.y-visibleMap;top>bottomRightCorner.y;top--) {
for(var slicedX = 0;slicedX<slicedMap.length;slicedX++) {
for(var slicedY = 0;slicedY<slicedMap.length;slicedY++) {
slicedMap[slicedY][slicedX] = rooms[newroom].map[bottom][left];
}
}
}
}
改變了的座標。問題寫得很急。 –