Этот вопрос относится к Галидному языку .
Скажем, для конкретного (x, y) я хочу работать над патчем KxK вокруг (x, y). Например, суммируйте их, возведите в квадрат и т. Д. c., Чтобы получить новое значение для (x, y).
В большинстве примеров галидов, которые я нашел, «жесткий код» выбирает соседний координаты. Как и в этом примере , а также в примере алгоритма размытия на домашней странице:
Func blur_x, blur_y; Var x, y;
// hard codes selecting x-1:x+1 and y-1:y+1
blur_x(x, y) = (input(x-1, y) + input(x, y) + input(x+1, y))/3;
blur_y(x, y) = (blur_x(x, y-1) + blur_x(x, y) + blur_x(x, y+1))/3;
Но, скажем, я хочу определить размер моего патча KxK. Как бы я выбрал и затем работал в окрестности произвольного размера вокруг (х, у)?