【问题标题】:GoJS graph parserGoJS 图形解析器
【发布时间】:2017-12-11 08:21:31
【问题描述】:

我正在尝试解析 GoJS 图,用户可以从盘子、圆形节点、矩形节点、三角形中拖动不同的类别。他可以将它们在一个方向互连,直到到达终点。

所需的功能是解析图并根据用户依赖图给出可能的路径列表。示例图在这里显示

我的函数是这样的代码:

function collectPaths(y, x) {
                                var stack = new go.List(go.node);
                                var coll = new go.List(go.List);
                                lock = false;
                                function find(y, x) {
                                    console.log(y.data.name);
                                    y.findNodesInto().each(function (n) {
                                        console.log(y.data.name + " ●▬● " + n.data.name);
                                        if ((n.data.key == x.data.key) && !(lock)) {  // success 
                                            console.log(n.data.name);
                                            var path = stack.copy();
                                            path.reverse();
                                            coll.add(path);
                                        } else if((n.data.key !=x.data.key) && lock){
                                            //   stack.add(n);
                                            console.log(n.data.name);
                                            if (n.data.category === "triangle") {

                                                pp = pp.findNodesInto();
                                                var it = pp.iterator;
                                                var m = new go.Map(go.node, "number");
                                                lock = true;
                                                while (it.next()) {
                                                    m.pop(it.value,it.value);
                                                    stack.add(it.value);
                                                    console.log(it.value.data.name);
                                                    find(it.value, x);
                                                }
                                                var tempList=go.list(go.node);
                                                tempList.each(function (pn) {
                                                   pn = tempList.pop();
                                                  if (!"undefined") {
                                                        stack.add(parent);
                                                        find(parent, x);
                                                        //  stack.add(pn);
                                                        console.log(pn.data.name);
                                                    } else {
                                                        pn = tempList.pop();
                                                        find(pn, x);
                                                    }
                                                });
                                            } else {
                                                console.log(n.data.name);
                                                stack.add(n);
                                                find(n, x);
                                                stack.removeAt(stack.count - 1);
                                            }
                                        }
                                        lock = false;
                                    });
                                } // end of full stack collection
                                find(y, x);
                                return coll;
                            }

但该函数没有提供所需的输出。

预期输出如下:附图如下:

N30 – N40 – N10
N1 -N2-N3-N4-N10
N5-N6-N9-N10
N5-N10
N7-N8-N10
N7-N8-N11-N10

我能做什么?

【问题讨论】:

    标签: javascript graph dependencies gojs path-separator


    【解决方案1】:

    示例https://gojs.net/latest/samples/distances.html 演示了如何查找任意一对节点之间的所有路径。您想使用collectAllPaths 函数——您可以删除与创建随机图或查找节点之间的距离或帮助用户以交互方式选择开始和结束节点有关的函数。

    【讨论】:

    • 谢谢@Walter,你能帮忙序列化三角形的所有父节点吗,因为用户可以把三角形放在任何地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多