Как определить, лежит ли точка в непрямоугольной области в двумерном массиве пустышек? - PullRequest
1 голос
/ 12 октября 2011

У меня есть 2D-массив. Предположим, что у него есть некоторая связная область, которая не является прямоугольной. Рассмотрим следующий пример

 array([[1, 1, 2, 2],\
        [0, 1, 0, 1],\
        [3, 0, 1, 4],\
        [0, 3, 1, 1]])

В приведенном выше массиве все связаны. Я знаю все эти координаты, которые хранятся, скажем, в виде двумерного массива или списка элементов (x, y).

Теперь я хочу запросить, если в этой области лежит произвольная точка. Точка также может быть поплавком.

В случае с плавающими координатами значения будут округлены до ближайшего целого значения пикселя.

Большое спасибо

1 Ответ

2 голосов
/ 12 октября 2011
areas = array([[1, 1, 2, 2],\
        [0, 1, 0, 1],\
        [3, 0, 1, 4],\
        [0, 3, 1, 1]])

def is_in_area(x,y, area_num):
    return areas[round(x), round(y)] == area_num

Это то, что вы собираетесь?

Конечно, вы можете захотеть проверить некоторые границы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...