用2点和圆心绘制圆弧

时间:2010-11-16 16:59:47

标签: java drawing geometric-arc

我有两个圆圈和圆圈的中心。我想在这些点之间画一条弧。方法drawArc很简单,不符合我的目的。 有人帮忙吗?

2 个答案:

答案 0 :(得分:23)

您可以使用Canvas.drawArc,但必须计算所需的参数:

让我们说圆的中心是(x0,y0)并且弧包含你的两个点(x1,y1)和(x2,y2)。然后半径为:r = sqrt((x1-x0)(x1-x0)+(y1-y0)(y1-y0))。所以:

int r = (int)Math.sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
int x = x0-r;
int y = y0-r;
int width = 2*r;
int height = 2*r;
int startAngle = (int) (180/Math.PI*atan2(y1-y0, x1-x0));
int endAngle = (int) (180/Math.PI*atan2(y2-y0, x2-x0));
canvas.drawArc(x, y, width, height, startAngle, endAngle);
祝你好运!

答案 1 :(得分:2)

Graphics.drawArc需要以下参数:

  • X
  • ý
  • 宽度
  • 高度
  • 由startAngle
  • arcAngle

根据您的弧起点和终点,可以计算一个边界框,其中将绘制弧。这为您提供了足够的信息来提供参数:x,y,width和height。

你没有指定所需的角度,所以我猜你可以任意选择一个。