2014-05-18 2 views
2

D3.js를 실험 해본 결과이 질문이 어리석게 들릴 수도 있지만 노드 중심 대신 노드 경계에 대한 그래프 지점의 링크를 만들 수는 없습니다. . 나는 그것을 테스트하기 위해 다음과 같은 jsfiddle을 사용하고있다,하지만 난 여전히 그것을 할 수 아니다D3.js 노드 경계에 링크 강제 적용

...

http://jsfiddle.net/blonkm/zpcJa/40/light/

내가 (진드기에 뭔가를 업데이트 할 필요가 있다고 가정) 함수 다른 값을 반환하는 방법 :

function tick() { 
    path.attr("d", function(d) { 
    var dx = d.target.x - d.source.x, 
     dy = d.target.y - d.source.y, 
     dr = 0; // straight lines (0=straight, 1=round) 
     // alternatively use dr = Math.sqrt(dx * dx + dy * dy); for similar arcs 
    return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y; 
    }); 

    circle.attr("transform", function(d) { 
    return "translate(" + d.x + "," + d.y + ")"; 
    }); 

    text.attr("transform", function(d) { 
    return "translate(" + d.x + "," + d.y + ")"; 
    }); 
} 

아무도 올바른 방향으로 나를 가리킬 수 있다면 감사하겠습니다. 감사합니다!

답변

1

마치 링크가 경계를 가리키는 것처럼 보이게 만드는 속임수는 링크를 먼저 그 다음에 그 위에 노드를 그리는 것입니다. 이렇게하면 원은 중심으로가는 선분을 가릴 것입니다.

코드를 재정렬해야합니다. 예를 들어, circle 앞에 path 요소를 추가하면됩니다.

완료 데모 here.

+0

와우 나는 그것이 그렇게 간단하다고 믿을 수 없다 ... 고마워! –

관련 문제