Хорошо, у меня есть карта, представленная в виде матрицы, ячейки в матрице, содержащие значение 1, представляют мою область, а ячейки, содержащие значение 2, - это путь, который начинается с моей области и также заканчивается там.Когда вы достигаете конца пути, то есть когда вы возвращаетесь в свою область, тогда область внутри пути и уже существующая область должны быть «объединены» с областью вместе с самим путем.На следующем рисунке приведен пример такой математики с путем.Какой самый быстрый способ достичь этого?

Я подумал об использовании алгоритма заполнения, но проблема в том, что я не знаю, как найти точку внутри области междуячейки, содержащие значения 1 и 2 (в значительной степени ячейки, окрашенные в красный цвет) очень быстрым способом.Матрица может быть очень большой, например, в данный момент я работаю с матрицей 330x330.
Я открыт для любых идей, язык реализации на самом деле не имеет значения, и он не должен быть матрицей, если у вас есть лучшая идея для достижения этого, пожалуйста, скажите мне.
На следующем рисунке показано, как должна выглядеть новая область.

edit: Все еще не могу найти ничего.Я только обнаружил, что для определенных путей вы можете составить среднее из них и найти точку внутри.Это, однако, не работает для всех путей ..