3

私のカスタム ビューでは、次Arcのように複数の塗りつぶされた s を描画します。

canvas.drawArc(oval, startAngle, sweepAngle, true, sectorPaint);

ここで、円弧の中心にアイコンを描きたいと思います。私はこれから始めました:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_icon);
canvas.drawBitmap(bitmap, pointX, pointY, null); //pointX & pointY ??

しかし、何を設定すればよいかわかりませpointXpointY。ここに私が持っているデータがあります:

  • 楕円の中心座標と半径。
  • startAngleおよびsweepAngle (したがって、endAngleを導出できます)

値を知り、それらの入力を与えるpointX方法はありますか?pointY


編集:イラストスケッチ:

ここに画像の説明を入力

4

2 に答える 2

3

この回答は、いくつかの調整の後、私を大いに助けてくれました:

double radius = width/2;
double x = radius + (radius)*Math.cos(-angle);
double y = radius + (radius)*Math.sin(-angle);
于 2012-09-16T08:47:43.890 に答える
0

あなたの変数を使用してください。

これを試して:

double x = C.x + r * Math.cos(theta * Math.PI / 180);
double y = C.y + r * Math.sin(theta * Math.PI / 180);

-thetaの終了角度はどこですかarcstart angle of arc

于 2016-08-09T18:46:11.210 に答える