Проход матрицы по спирали из центра в края node.js
Всем привет!
Задача: найти ближайший к центру пиксель по условиям (за удовлетворение условий отвечает метод checkColor().
Пытаюсь понять, как сделать проход матрицы по спирали, где начальная точка в центре матрицы. Сейчас у меня есть проход по строкам:
let centerX = 600;
let centerY = 600;
let startXPoint = 0;
let startYPoint = 0;
let endXPoint = 1200;
let endYPoint = 1200;
for (let i = startXPoint; i <= endXPoint; i++) {
for (let j = startYPoint; j <= endYPoint; j++) {
let {r,g,b} = Jimp.intToRGBA(img.getPixelColor(i, j))
let colorFound = checkColor(r,g,b);
if (colorFound) {
return colorFound;
}
}
}
const checkColor = (r,g,b) => {
for (let colorObj of colors) {
let name = colorObj.name;
for (let colorInput of colorObj.inputs) {
let colorRed = colorInput[0];
let colorGreen = colorInput[1];
let colorBlue = colorInput[2];
if( colorRed === r && colorGreen === g && colorBlue === b) {
return name;
}
}
}
return null;
}
Но это занимает много времени, т.к. очень большое кол-во пикселей анализируется "в пустую" (как правило, нужный пискель находится довольно близко к центру).
Буду благодарен за помощь!