정점이 겹치는 것을 방지하는 방법은 무엇입니까?
-
19-09-2019 - |
문제
나는 Jung을 사용하여 그래프를 그립니다. 아래는 잘 보이는 트리 레이아웃이있는 간단한 그래프입니다. 모든 렌더러와 변압기가 기본값입니다.
대체 텍스트 http://czuk.eu/stackoverflow/ballon_layout_default_size.png
이제 사용자 정의를 설정하여 노드의 기본 크기를 100px로 변경했습니다. VertexShapeTransformer
. 문제는 노드가 겹치기 시작했다는 것입니다. 여기에서 어떻게 보이는지 볼 수 있습니다.
대체 텍스트 http://czuk.eu/stackoverflow/ballon_layout_size_100px.png
정점 겹치는 것을 제거 할 수 있습니까? 레이아웃의 문제입니까 아니면 일종의 모양 변환입니까?
제안에 미리 감사드립니다 :-)
해결책
너무 긴 조사 후에 나는 정점 사이의 최소 거리를 설정하는 두 가지 정적 속성이 있음을 알았습니다. 이것들은 TreeLayout.DEFAULT_DISTX
그리고 TreeLayout.DEFAULT_DISTY
. 불행히도, 이러한 속성은 정점 사이의 고정 된 최소 거리를 정의하지만 각 정점의 실제 크기를 고려하지는 않습니다. 설정은 TreeLayout
그리고 BalloonLayout
그것은 연장됩니다 TreeLayout
.
나는 또한 다른 레이아웃을 시도하지만 유사성 솔루션을 찾을 수 없었습니다. 이 문제는 또 다른 질문입니다 ;-)
다른 팁
당신이 만들 때 TreeLayout
당신은 그것을 지정할 수 있습니다 TreeLayout.DEFAULT_DISTX
그리고 TreeLayout.DEFAULT_DISTY
생성자에서 :
TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
아마도 노드 사이에 더 먼 거리를 두어야합니까? 특정 크기 노드로 특정 거리로 시작했습니다. 노드의 크기를 늘리면 노드 사이의 공간을 줄이려면 노드 사이에 추가 거리를 보상하기 위해 추가 거리를 보상하기 위해 추가 거리를 보상해야합니다.