def is_contain(query_point, vertex_lst): if len(vertex_lst) == 4: vertex_box = copy.deepcopy(vertex_lst) vertex_box = clockwise_sort(vertex_box) polygon = Polygon(vertex_box) else: polygon = Polygon(vertex_lst) point = Point(query_point[0], query_point[1]) if not polygon.is_convex: return False return polygon.contains_point(point)
def find_nearest_box(self, query_point): # find nearest 24 res_indx, res_lst = Search.find_nearest_k(self, query_point, 24) # filter the masked points res_indx, res_lst = self.filter_mask(res_indx, res_lst) if len(res_indx) < 4: self.full = False # find bilinear_box flag, box_indx, box = select_containing_rect(query_point, res_indx, res_lst) self.outside = flag if flag: print 'Can not be contained.' else: box_indx, box = clockwise_sort_indx(box_indx, box) box = clockwise_sort(box) return self.outside, self.full, box_indx, box