0
graphviz과 비슷한 글자가 필요합니다. 나는 이미 그들이 중복되지 않는 및 이차 베 지어 곡선과의 센터를 연결하도록 노드를 그릴 관리했다,하지만 난 곡선 에지의 방향성에 다음과 같은 문제에 직면하고있다 :Java에서 오토 마트의 방향이있는 가장자리를 그립니다.
로 당신은 볼 수 있습니다, 노란색 작은 삼각형은 꽤 좋지 않습니다. 내 코드는 다음과 같습니다 :
g.setColor(Color.RED);
ArrowGraph arrow = graph.getArrows().get(0);
int x = (int)(arrow.getP1().getX() + arrow.getP2().getX())/2;
int y = (int)(arrow.getP1().getY() + arrow.getP2().getY())/2 + 50;
QuadCurve2D.Double curve = new QuadCurve2D.Double(arrow.getP1().getX() - 20, arrow.getP1().getY() - 20, x, y, arrow.getP2().getX() - 20, arrow.getP2().getY() - 20);
((Graphics2D)g).draw(curve);
int[] xPoints = new int[] {(int)arrow.getP2().getX() - 20, (int)arrow.getP2().getX() - 15, (int)arrow.getP2().getX() - 25};
int[] yPoints = new int[] {(int)arrow.getP2().getY() - 20, (int)arrow.getP2().getY() - 10, (int)arrow.getP2().getY() - 10};
g.setColor(Color.YELLOW);
g.fillPolygon(xPoints, yPoints, 3);
내가 알고있는 좌표 : 시작점과 끝점, 커브의 제어점. 시작점과 끝점은 기본적으로 노드의 중심입니다.
저는 어떻게 든 삼각형을 곡선으로 조정하고 싶습니다. 그래서 그것의 끝에 있습니다 (노드의 경계에있는 것이 바람직합니다). 어떻게 내가 그걸 할 수 있었는지 알았어?
경로의 마지막 줄을 사용하여 경로에서 점을 얻을 수 있습니다. 경로에 따라 삼각형을 구성 할 수 있습니다. 이 대답은 도움이되었습니다. FlatteningPathIterator를 알지 못했습니다. – Eszter