public List <Vector> system_config(int root = -1, int p_root = -1) { this.root = root; this.p_root = p_root; List <Vector> X = new List <Vector>(); for (int i = 0; i < G.V; i++) { X.Add(new Vector(0, 0)); } c = new double[G.V]; i = new double[G.V]; inc = new double[G.V]; d = 200.0; GA = new TreeAlgo <Object>(G); if (root == -1) { root = GA.center(); } GA.dfs(root, p_root); c[root] = 0; i[root] = 2 * Math.PI; compute_inc(); foreach (var s in G.adj_list(root)) { dfs(s, root); } for (int v = 0; v < G.V; v++) { double h = d * GA.height(v); X[v] = new Vector(h * Math.Cos(c[v]), h * Math.Sin(c[v])); } layout.getRect(ref X, ref lt, ref rb); for (int i = 0; i < X.Count; i++) { X[i] = layout.getCoord(X[i], lt, rb); } return(X); }
public List <Vector> system_config(Graph <Object> G, int root = -1, int p_root = -1) { init(root, p_root); // for safety!!! this.G = G; List <Vector> X = new List <Vector>(); for (int i = 0; i < G.V; i++) { X.Add(new Vector(0, 0)); } TreeAlgo <Object> GA = new TreeAlgo <Object>(G); if (root == -1) { root = GA.center(); } GA.dfs(root, p_root); right = new int[G.V]; for (int i = 0; i < G.V; i++) { right[i] = 0; } X[root] = new Vector(sx == INF ? 0 : sx, sy == INF ? 0 : sy); if (G.V > 1) { setPos(root, p_root, ref X, ref GA); } else { right[root] = (int)X[root][0]; } return(X); }
public List<Vector> system_config(Graph<Object> G, int root = -1, int p_root = -1) { init(root, p_root); // for safety!!! this.G = G; List<Vector> X = new List<Vector>(); for (int i = 0; i < G.V; i++) X.Add(new Vector(0,0)); TreeAlgo<Object> GA = new TreeAlgo<Object>(G); if (root == -1) root = GA.center(); GA.dfs(root, p_root); right = new int[G.V]; for (int i = 0; i < G.V; i++) right[i] = 0; X[root] = new Vector(sx == INF ? 0 : sx, sy == INF ? 0 : sy); if (G.V > 1) { setPos(root, p_root, ref X, ref GA); } else { right[root] = (int)X[root][0]; } return X; }
public List<Vector> system_config(int root = -1, int p_root = -1) { this.root = root; this.p_root = p_root; List<Vector> X = new List<Vector>(); for (int i = 0; i < G.V; i++) X.Add(new Vector(0, 0)); c = new double[G.V]; i = new double[G.V]; inc = new double[G.V]; d = 200.0; GA = new TreeAlgo<Object>(G); if (root == -1) root = GA.center(); GA.dfs(root, p_root); c[root] = 0; i[root] = 2 * Math.PI; compute_inc(); foreach(var s in G.adj_list(root)) dfs(s, root); for (int v = 0; v < G.V; v++) { double h = d * GA.height(v); X[v] = new Vector(h * Math.Cos(c[v]), h * Math.Sin(c[v])); } layout.getRect(ref X, ref lt, ref rb); for (int i = 0; i < X.Count; i++) X[i] = layout.getCoord(X[i], lt, rb); return X; }