我已经在 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);
但这仍然没有帮助我。我试图计算我的两点的中心,但弧的结果不是我在等待的。
结果是这样的:
这就是我要找的:
我有我想连接的每对点的坐标,比如“汽车”点和“公共汽车”点,然后我想在它们之间画一条弧线。角度永远是这样的。