The goal is to find a closest pixel with a certain value. To do that, I want to loop over the pixel, starting from the closest, with increasing distance, untill I reach a pixel which matches my requirements (edge of the grid or the desired value).
I believe this is not a duplicate, although very similar question have appeared before.
Looping in a spiral or another spiral answer are useful, but they won't result in the points ordered by distance to the center.
Justin L. actually mentions his application to find the closest point, but overlook the actual distance.
For example the algorithm in this image would find [1, 1] before [0, 1] although [0, 1] is much closer (distance of 1) compared to [1, 1] (distance of √2).
I'd like to get the points ordered by distance
[1, 0] [0, 1] [-1, 0] [0, -1] [1, 1] ...
otherwise it wouldn't be a real spiral.
This answer suggests spiraling with a very small step size, but since I don't know how far I need to spiral, this sounds very inefficient.
I hope this graphic makes the order clearer.