Tôi không tin có một lệnh duy nhất để làm điều này, nhưng chúng ta vẫn có thể hoàn thành nó một cách nhanh chóng. Ý tưởng là khoảng cách đến ô khác nhau gần nhất bằng khoảng cách đến vị trí gần nhất có vùng lân cận ngay lập tức chứa nhiều hơn một loại ô.
Chà, điều này không hoàn toàn đúng, nhưng nó rất gần: bạn có thể muốn thêm khoảng một chiều rộng ô vào khoảng cách như vậy. Nếu bạn có thể sống với một xấp xỉ như vậy, thì đây là quy trình làm việc:
Tính toán một lưới đa dạng tiêu điểm bằng cách sử dụng một vùng lân cận nhỏ nhất có thể, đó sẽ là một vùng lân cận 2 x 2 vuông.
Nullify tất cả các vị trí có nhiều tiêu điểm từ 1 trở xuống: đây là các ô "bên trong".
Tính toán lưới khoảng cách Euclide cho tất cả các ô còn lại: đây là khoảng cách đến các vị trí dọc theo các ranh giới.
(Tùy chọn) Thêm kích thước ô vào lưới khoảng cách.
Trích xuất các giá trị tại bất kỳ điểm nào bạn chọn.
Để minh họa, đây là một mảnh nhỏ của lưới được tô màu theo loại ô. Các vùng màu đen là các ô có các tiêu điểm từ 2 trở lên (được tính ở bước 2):
Một lưới khoảng cách Euclide trên đồi trông như thế này:
Nó đạt đến các đỉnh (giá trị tối đa) trong tâm của mỗi miếng vá của raster ban đầu và phân rã về 0 dọc theo ranh giới của miếng vá, vẫn hiển thị với màu đen.