用2点和圆心绘制圆弧

Car*_*sPl 13 java drawing geometric-arc

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

bot*_*ius 24

您可以使用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);
Run Code Online (Sandbox Code Playgroud)

祝好运!

  • 在理论上是的.但是,drawArc()有int参数. (4认同)

Ada*_*ski 2

Graphics.drawArc期望以下参数:

  • X
  • y
  • 宽度
  • 高度
  • 起始角度
  • 弧角

给定圆弧起点和终点,可以计算将在其中绘制圆弧的边界框。这为您提供了足够的信息来提供参数:x、y、宽度和高度。

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