public QuadTreeImp createQuardTree() { if (_points == null || _rows == 0 || _columns == 0) { return(null); } _rootColor = getNodeColor(); if (_rootColor == Colors.Gray) { int[,] _pointsNW = getPoints(Direction.NW); QuadTreeImp qtNW = new QuadTreeImp(_pointsNW, _rows / 2, _columns / 2, _depth + 1, Direction.NW, _canvas); _northWest = qtNW.createQuardTree(); int[,] _pointsSW = getPoints(Direction.SW); QuadTreeImp qtSW = new QuadTreeImp(_pointsSW, _rows / 2, _columns / 2, _depth + 1, Direction.SW, _canvas); _southWest = qtSW.createQuardTree(); int[,] _pointsSE = getPoints(Direction.SE); QuadTreeImp qtSE = new QuadTreeImp(_pointsSE, _rows / 2, _columns / 2, _depth + 1, Direction.SE, _canvas); _southEast = qtSE.createQuardTree(); int[,] _pointsNE = getPoints(Direction.NE); QuadTreeImp qtNE = new QuadTreeImp(_pointsNE, _rows / 2, _columns / 2, _depth + 1, Direction.NE, _canvas); _northEast = qtNE.createQuardTree(); } return(this); }
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); }
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); }
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); }
private void addToPreOrderText(QuadTreeImp quadTree) { if (quadTree != null) { if (quadTree.RootColor == Colors.Gray) { _preOrderText += "2 "; } else if (quadTree.RootColor == Colors.Black) { _preOrderText += "1 "; } else if (quadTree.RootColor == Colors.White) { _preOrderText += "0 "; } if (quadTree.NorthWest != null) { addToPreOrderText(quadTree.NorthWest); } if (quadTree.SouthWest != null) { addToPreOrderText(quadTree.SouthWest); } if (quadTree.SouthEast != null) { addToPreOrderText(quadTree.SouthEast); } if (quadTree.NorthEast != null) { addToPreOrderText(quadTree.NorthEast); } } }
public void clearQuadTree() { _quadTree = null; }