Цель состоит в том, чтобы найти ближайший пиксель с определенным значением. Для этого я хочу перебрать пиксель, начиная с ближайшего, с увеличением расстояния, пока я не достигну пикселя, который соответствует моим требованиям (край сетки или желаемое значение).
Я считаю, что это не дубликат, хотя очень похожие вопросы уже возникали раньше.
Зацикливание по спирали или другое спиральный ответ полезны, но они не приводят к точкам, упорядоченным по расстоянию до центра.
Джастин Л. фактически упоминает свое приложение для поиска ближайшей точки, но упускает из виду фактическое расстояние.
Например, алгоритм на этом изображении найдет [1, 1] перед [0, 1], хотя [0, 1] намного ближе (расстояние 1) по сравнению с [1, 1] (расстояние √2).
Я бы хотел получить точки, упорядоченные по расстоянию [1, 0] [0, 1] [-1, 0] [0, -1] [1, 1] ...
, иначе это не было бы настоящей спиралью.
Этот ответ предлагает спиральное движение с очень маленьким размером шага, но, поскольку я не знаю, как далеко мне нужно закручивать, это звучит очень неэффективно.
Я надеюсь, что этот рисунок проясняет порядок.