1
GoJS 다이어그램을 구문 분석하려고하는데 사용자가 원형, 원 노드, 사각형 노드, 삼각형에서 다른 범주를 드래그 할 수 있습니다. 끝까지 도달 할 때까지 한 방향으로 그들을 서로 연결할 수 있습니다.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
내가 할 수있는 일이 같은
예상 출력은 다음과 같이 그림에 대한 연결?
고맙습니다. @Walter, 삼각형의 모든 부모 노드를 직렬화하는 데 도움을 주실 수 있습니까? 사용자가 삼각형을 어디에 둘 수 있는지 존중하십시오. – MhdBanat