Привет,
Я пытаюсь объединить массив точек (x, y)
в массив полей [(x0, y0), (x1, y0), (x0, y1), (x1, y1)]
(кортежи - это угловые точки)
Пока у меня есть следующая процедура:
def isInside(self, point, x0, x1, y0, y1):
pr1 = getProduct(point, (x0, y0), (x1, y0))
if pr1 >= 0:
pr2 = getProduct(point, (x1, y0), (x1, y1))
if pr2 >= 0:
pr3 = getProduct(point, (x1, y1), (x0, y1))
if pr3 >= 0:
pr4 = getProduct(point, (x0, y1), (x0, y0))
if pr4 >= 0:
return True
return False
def getProduct(origin, pointA, pointB):
product = (pointA[0] - origin[0])*(pointB[1] - origin[1]) - (pointB[0] - origin[0])*(pointA[1] - origin[1])
return product
Есть ли лучший способ, чем поиск по точкам? Может, какая-то неочевидная рутина?
Спасибо!