В моей задаче я представляю вогнутый многоугольник как матрицу из единиц и нулей, где один означает, что данная точка принадлежит многоугольнику. Например, следующие простой квадрат и U-образный полигон:Заполнение вогнутого многоугольника, представленного как двоичная матрица
0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 0 0 1 1
0 1 1 0 0 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1
Однако, иногда я получаю неполное представление, в котором: (1) все граничные точки включены, и (2) некоторые внутренние очков нет. Например, в следующем увеличенном варианте u-образного многоугольника элементы в положениях (1,1), (1,6), (3,1), ..., (3,6) * являются «незаполненными ». Цель состоит в том, чтобы заполнить их (т. Е. Изменить их значение на 1
).
1 1 1 0 0 1 1 1
1 0 1 0 0 1 0 1
1 1 1 1 1 1 0 1
1 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1
Знаете ли вы, есть ли простой способ сделать это в Python/NumPy?
* (строка, столбец), начиная отсчет от верхнего левого угла
как вы решите, что это не позиции (3, 0), (4, 0) не являются теми, которые должны быть заполнены? связано ли оно с направлением нулей, касающимися «границы» всей матрицы? –
Вы имеете в виду два первых нуля в первом ряду? –
О да, извините, я не понял строк и столбцов. –