Example #1
0
def generate(points):
    """Given a list of points construct balanced kd-tree."""
    if len(points) == 0:
        return None

    # VERTICAL=1 is the initial division
    tree = KDTree()
    tree.root = generateSubTree(1, 2, points, 0, len(points) - 1)
    propagate(tree.root, maxRegion)
    return tree
Example #2
0
    def __init__(self):
        """App for creating KD tree dynamically and executing nearest neighbor queries."""

        self.tree = KDTree()
        self.match = None
        self.shortline = None

        # set to true when you want to view a set of points that
        # were set not by user control.
        self.static = False

        self.master = tkinter.Tk()
        self.master.title('KD Tree Nearest Neighbor Application')
        self.w = tkinter.Frame(self.master, width=410, height=410)
        self.canvas = tkinter.Canvas(self.w, width=400, height=400)

        self.paint()

        self.canvas.bind("<Button-1>", self.click)
        self.canvas.bind("<Motion>", self.moved)
        self.w.pack()
Example #3
0
    def __init__(self):
        """App for creating KD tree dynamically and executing range queries."""

        self.tree = KDTree()
        self.static = False

        # for range query
        self.selectedRegion = None
        self.queryRect = None

        self.master = tkinter.Tk()
        self.master.title('KD Tree Range Query Application')
        self.w = tkinter.Frame(self.master, width=410, height=410)
        self.canvas = tkinter.Canvas(self.w, width=400, height=400)

        self.paint()

        self.canvas.bind("<Button-1>", self.click)
        self.canvas.bind("<Motion>", self.moved)
        self.canvas.bind("<Button-3>", self.range)  # when right mouse clicked
        self.canvas.bind("<ButtonRelease-3>", self.clear)
        self.canvas.bind("<B3-Motion>",
                         self.range)  # only when right mouse dragged
        self.w.pack()
Example #4
0
 def setUp(self):
     self.kd = KDTree()