def neighborhood_k(index, points, K): root = None for q,i in zip(G._vertex, range(len(G._vertex))): node_data = NodeData(euc_dist(points[index], q), i) if root is not None: root.insert(node_data) else: root = Node(node_data) neighborhood_vertex = [] root.SortedUntil(K, neighborhood_vertex) neighborhood_vertex = list(map(lambda x: x.data, neighborhood_vertex)) return neighborhood_vertex
def get_oposition_points_by_distance(edge_indexes, alone_vertex_index, points): root = None edge = points[(edge_indexes)] alone_vertex = points[alone_vertex_index] k = 0 for (point_index, point) in zip(range(len(points)),points): if point_index not in edge_indexes and on_semi_plan_opposed(*edge, alone_vertex, point): node_data = NodeData(distance_to_segment2(*edge, point), point_index) # node_data = NodeData(distance_to_segment(*edge, point), point_index) k += 1 if root is not None: root.insert(node_data) else: root = Node(node_data) neighborhood_vertex = [] if root: root.SortedUntil(k, neighborhood_vertex) neighborhood_vertex = list(map(lambda x: x.data, neighborhood_vertex)) return neighborhood_vertex