私はすでにstackoverflowで同様の質問を検索しており、次のような他の回答からのいくつかの提案を使用して実装しようとしました:
Point p1 = prop.getDisplayPoint();
Point p2 = prop2.getDisplayPoint();
int xCenter = p1.x - 50;
int yCenter;
if(p1.y > p2.y)
yCenter = p1.y - ((p1.y-p2.y)/2);
else
yCenter = p2.y - ((p2.y-p1.y)/2);
int r = (int)Math.sqrt((p1.x-xCenter)*(p1.x-xCenter) + (p1.y-yCenter)*(p1.y-yCenter));
int x = xCenter-r;
int y = yCenter-r;
int width = 2*r;
int height = 2*r;
int startAngle = (int) ((180/Math.PI)*Math.atan2(p1.y-yCenter, p1.x-xCenter));
int endAngle = (int) ((180/Math.PI)*Math.atan2(p2.y-yCenter, p2.x-xCenter));
g.drawArc(x, y, width, height, startAngle, endAngle);
しかし、それでもこれは私を助けませんでした。2 つのポイントの中心を計算しようとしましたが、円弧の結果は期待したものではありませんでした。
これが結果でした:
これは私が探しているものです:
「車」のポイントと「バス」のポイントのように、接続したいポイントの各ペアの座標を持っているので、それらの間に円弧を描きたいと思います。角度は常にそのようなものになります。