Re[4]: Поиск замкнутого многоугольника в матрице
От: DragonFire Россия  
Дата: 21.09.10 13:10
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, DragonFire, Вы писали:


DF>>>>Предположим, что у нас есть матрица:

DF>>>>0 0 0 0 0 0 0
DF>>>>0 1 1 1 1 0 0
DF>>>>0 1 0 0 1 1 1
DF>>>>0 1 1 1 1 1 1

_DA>>>Что-то я ничего не понял. Нужно получить вот это?

_DA>>>
_DA>>>0 0 0 0 0 0 0
_DA>>>0|1 1 1 1|0 0
_DA>>>0|1|0 0|1 1 1|
_DA>>>0|1 1 1 1 1 1|
_DA>>>


DF>>Ага, примерно такую фигуру =)


A>Дык вроде всё просто — сначала сканируем по горизонтали: на переходе 01 ставим у единицы "левую стенку", на переходе 10 — ставим у единицы "правую стенку".

A>Потом аналогично сканируем по вертикали, расставляя единичкам верхние и нижние "стенки".
A>А потом ещё раз сканируем единички в поисках "углов" (точек, где сходятся стенки). В итоге получим набор вершин искомого многоугольника. Останется их как-то упорядочить.

Проблемы вызывают "пустоты" — области нулей внутри единиц. Такие области надо как-то обнаруживать и вырезать из искомого многоугольника.
Сами то границы многоугольника найти совсем не сложно, я согласен...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.