그래픽을 제작할 때 완벽한 마비가 있습니다. 비주얼의 대칭을 완전히 조사하지 못했다면, 나는 무엇이 진행되고 있는지 이해하기가 더 힘들어진다. 저는 매우 시각적 인 학습자이기도하며, 방금 배운 것을 단순화하고 종이에 그리는 것을 좋아합니다. Graphviz는 자동으로 물건을 그릴 수있는 좋은 도구이지만, 더 좋을 수도 있습니다. 좋은 그래프의 예)부터 상태
나는 점 사용 (즉, 이전 버전) 오른쪽에서가는 가장자리가 왼쪽으로 표시하기 위해 노력하고있어 : C <- A -> B
을 내가 할 수있는 최선이었다 digraph {
a -> b;
c -> a [dir="back"];
{rank=same;c a b}
}
.. 가장자리가 다른 방향으로 향할 때 c -> a을 사용하는 것을
planarity testing 주요 무료 Java 구현이 있습니까? Boyer-Myrvold, Fraysseix-Rosenstiehl, 도대체 Hopcroft-Tarjan. 저는이 논문을 읽었으며 모두 상당히 복잡해 보입니다. 누군가 다른 사람이 이미 그렇게 해왔다면 직접 구현하는 모든 작업을 건너 뛰고 싶습니다.
그래프를 사용자에게 보여줄 프로그램을 작성하려고합니다. 그래프는 시간이 지남에 따라 바뀝니다 (사용자는 그래프 항목을 마우스 오른쪽 버튼으로 클릭하고 그래프의 새 비트가 튀어 나오는 세부 정보를 물을 수 있어야합니다). 사용자는 그래프의 일부를 드래그 할 수 있습니다 . 전체 레이아웃을 라이브러리까지 남겨 두면서 그래프의 특정 부분에 대한 상대적인 레이아웃
현재 jruby/java2d 그래프 그리기/레이아웃 응용 프로그램을 macruby/cocoa로 이식하고 있습니다. 따라서 열려있는 NSBezierPath와 닫힌 NSBezierPath의 교차점을 가져와야합니다. java2d에서 다음 트릭을 사용했습니다. 나는 두 경로를 평평하게하고 각 세그먼트에 대한 간단한 선 교차 검사를 수행했습니다. 그래서 NSBezi
그래프를 강제 지시 레이아웃으로 그리기 때문에 생성 된 그래프의 방향이 무작위이며 예측할 수 없으므로 다소 혼란 스럽습니다. 예를 들어, 노드 A가 두 개의 개별 그래프 G1 및 G2의 구성원이라고 가정합니다. 강제 지시 레이아웃을 사용하면 노드 A가 G1의 왼쪽에 있지만 G2의 오른쪽에 놓일 수 있습니다. 이제 그래프 레이아웃 알고리즘을 적용한 후에 결정