Я не верю, что есть единственная команда, чтобы сделать это, но мы все еще можем выполнить ее целесообразно. Идея состоит в том, что расстояние до ближайшей другой ячейки равно расстоянию до ближайшего местоположения, непосредственная окрестность которого содержит более одного типа ячейки.
Ну, это не совсем так, но это близко: вы можете добавить примерно одну ширину ячейки к такому расстоянию. Если вы можете жить с таким приближением, вот рабочий процесс:
Вычислите сетку фокальных многообразий, используя как можно меньшую окрестность, которая была бы площадью 2 на 2 квадрата.
Обнулите все местоположения с фокусным разнообразием 1 или меньше: это «внутренние» ячейки.
Вычислите евклидову сетку расстояний до всех оставшихся ячеек: это расстояния до местоположений вдоль границ.
(Необязательно) Добавьте размер ячейки к сетке расстояний.
Извлеките значения в любых точках, которые вы выбираете.
Чтобы проиллюстрировать это, приведем небольшой фрагмент сетки, окрашенной по типу ячейки. Черные области - это ячейки с фокусными вариантами 2 или более (вычисляются на шаге 2):
Евклидова сетка расстояний с холмистой тенью выглядит так:
Он достигает пиковых значений (максимальных значений) в центрах каждого фрагмента исходного растра и затухает до нуля вдоль границ фрагментов, все еще показанных черным цветом.