예제 #1
0
        public void drwaQuadTree(Canvas canvas)
        {
            _quadTree = new QuadTreeImp(_points, _rows, _columns, 0, Direction.ROOT, canvas);
            _quadTree = _quadTree.createQuardTree();

            _quadTree.Position = getRootNodePosition(canvas);
            _quadTree.draw(canvas);
        }
예제 #2
0
        public void drwaQuadTree(Canvas canvas, string preOrderTextFile)
        {
            StreamReader fileReader = File.OpenText(preOrderTextFile);
            string       header     = fileReader.ReadLine();

            char[]   delimiterChars = { ' ' };
            string[] headerEntries  = header.Split(delimiterChars);

            _rows    = Convert.ToInt32(headerEntries[0]);
            _columns = Convert.ToInt32(headerEntries[1]);

            _preOrderText = fileReader.ReadLine();
            _quadTree     = new QuadTreeImp(_rows, _columns, 0, Direction.ROOT, canvas);
            _quadTree     = _quadTree.createQuardTree(ref _preOrderText);

            _quadTree.Position = getRootNodePosition(canvas);
            _quadTree.draw(canvas);
        }
예제 #3
0
        public QuadTreeImp createQuardTree(ref string preOrderText)
        {
            _rootColor = getNodeColor(ref preOrderText);

            if (_rootColor == Colors.Gray)
            {
                QuadTreeImp qtNW = new QuadTreeImp(_rows / 2, _columns / 2, _depth + 1, Direction.NW, _canvas);
                _northWest = qtNW.createQuardTree(ref preOrderText);

                QuadTreeImp qtSW = new QuadTreeImp(_rows / 2, _columns / 2, _depth + 1, Direction.SW, _canvas);
                _southWest = qtSW.createQuardTree(ref preOrderText);

                QuadTreeImp qtSE = new QuadTreeImp(_rows / 2, _columns / 2, _depth + 1, Direction.SE, _canvas);
                _southEast = qtSE.createQuardTree(ref preOrderText);

                QuadTreeImp qtNE = new QuadTreeImp(_rows / 2, _columns / 2, _depth + 1, Direction.NE, _canvas);
                _northEast = qtNE.createQuardTree(ref preOrderText);
            }

            return(this);
        }