public int[] find(int radius, int x_start, int y_start, float value) {
if (getPixel(x_start, y_start) == value)
return new int[]{x_start, y_start};
int r = 1;
while (r <= radius) {
int x = x_start - r;
int x2 = x_start + r;
for (int i = 0; i < 2*r - 1; i++) {
int y_i = y_start - r + 1 + i;
if (getPixelWrap(x, y_i) == value)
return new int[]{(x + width)%width, (y_i + height)%height};
if (getPixelWrap(x2, y_i) == value)
return new int[]{(x2 + width)%width, (y_i + height)%height};
}
int y = y_start - r;
int y2 = y_start + r;
for (int i = 0; i < 2*r + 1; i++) {
int x_i = x_start - r + i;
if (getPixelWrap(x_i, y) == value)
return new int[]{(x_i + width)%width, (y + height)%height};
if (getPixelWrap(x_i, y2) == value)
return new int[]{(x_i + width)%width, (y2 + height)%height};
}
r++;
}
return new int[]{-1, -1};
}