Я шукаю хороші алгоритми для наступної проблеми: З огляду на 3D-сітку вокселів (яка може бути або порожньою, або заповненою), якщо я вибираю два суміжних вокселі, я хочу знати, чи вони пов'язані між собою інші вокселі.
Наприклад (для ілюстрації ситуації у 2D), де # - заповнений квадрат:
1 2 3
a # # #
b # #
c # # #
Якщо я вибираю a3 і c3, я хочу визначити якомога швидше, чи вони підключені; якщо є шлях між а3 і с3 через заповнені пікселі. (Справжня ситуація, звичайно, в 3D-воксельній сітці.)
Я переглянув алгоритми заповнення та алгоритми пошуку шляху, але не впевнений, який вибрати. Обидва виконують непересічну роботу: Флуд Флуд намагається заповнити всі вокселі, але це не потрібно. Алгоритми пошуку шляху зазвичай стосуються пошуку найкоротшого шляху, що також не є необхідним. Мені потрібно лише знати, чи є шлях.
Який алгоритм я повинен використовувати?
Редагувати: виходячи з коментарів, я думаю, слід додати наступне: вміст вокселів не відомий заздалегідь, а також алгоритм необхідний для виявлення, чи видалення (випорожнення) вокселя призведе до розриву групи вокселів на дві або більше менших груп.
c3->c2->b2->a2->a3
:?