2016-11-26 3 views
1

편안히 앉 레이아웃 노드 축소 : 어떤 이유로 나는 두 노드 사이의 가장자리를 추가하는 경우, 두 노드가 함께 붕괴 리라추가 가장자리가 나는 문제를 보여주는 간단한 그래프가 여기에

var cy = cytoscape({ 
    container: document.getElementById("stage"), 
    elements: [{ 
     data: {id: "a", value: 0} 
    }, { 
     data: {id: "b", value: 1} 
    }, { 
     data: {id: "ab", source: "a", target: "b", weight: 10} 
    }, { 
     data: {id: "c", value: 2} 
    }], 
    style: [{ 
     selector: "node", 
     style: { 
      content: "data(id)", 
      "text-valign": "center", 
      color: "white", 
      "background-color": "mapData(value, 0, 2, red, blue)" 
     } 
    }], 
    layout: { 
     name: "cose" 
    } 
}); 

를 (상단에 배치 서로의). CoSE demo on GitHub 다음에 나는 그것이 왜 일어나고 있는지 전혀 모른다. 어떤 아이디어? 문제의

데모 : a, bc하지만 ab가 서로의 상단에 배치됩니다 : https://jsfiddle.net/DerekL/mthg1uv5/

세 개의 노드가 있어야합니다. 노드 b을 드래그하여 노드 a을 볼 수 있습니다.

답변

1

귀하의 요구 사항을 충족 시키 든 아니든간에 임의 선택을 사용 설정하면 문제가 해결 될 것입니다. 그래서 같이

:

layout: { 
    name: "cose", 
    randomize: true 
} 

또한 레이아웃 유형을 변경하여 문제를 해결할 수 있습니다 - 나는 시도 'breadthfirst'과는 문제가되지 않았다. 나는 왜 당신이 원하는대로 코가 효과가 없는지 설명 할만큼 충분히 숙달되지는 않았지만 잘하면 이것이 도움이됩니다. 저의 연구 조사 결과, 모든 사람들이 기립에 대한 대안으로 기저귀 배치를 칭찬하는 것으로 보이므로, 그것이 귀하의 필요를 충족시킬 수 있는지 보는 것이 가치가 있습니다.

+0

감사합니다. –

+0

CoSE Bilkent는 다른 모든 강제 지정 레이아웃과 달리 기본적으로'randomize : true'를 가지고 있습니다. 무작위 화를 지정하지 않고 모든 노드의 초기 위치가 같으면 노드 사이의 거리가 0이며 강제 지시 레이아웃은 당연히 노드를 이동시키지 않습니다. – maxkfranz

+0

CoSE Bilkent는 적은 구성으로 더 나은 출력을 제공하지만 포함 된 CoSE 버전보다 훨씬 비쌉니다. – maxkfranz