14

円とこの円の中心の 2 つの点があります。これらの点の間に弧を描きたいです。方法drawArcが単純すぎて、私の目的には合いません。誰か助けて?

4

2 に答える 2

27

Canvas.drawArc を使用できますが、必要な引数を計算する必要があります。

円の中心が (x0, y0) で、円弧に 2 つの点 (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);

幸運を!

于 2010-11-22T15:19:03.850 に答える
2

Graphics.drawArc次のパラメーターが必要です。

  • バツ
  • y
  • 身長
  • 開始角度
  • 弧角

円弧の始点と終点を指定すると、円弧が描画される境界ボックスを計算できます。これにより、パラメーター (x、y、幅、高さ) を提供するのに十分な情報が得られます。

希望の角度を指定していないので、任意に選択できると思います。

于 2010-11-16T17:13:39.720 に答える