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 ??

但是,我不知道我应该为pointXand设置什么pointY。这是我拥有的数据:

  • 椭圆中心坐标和半径。
  • startAngle 和 sweepAngle(因此可以导出 endAngle)

有没有办法知道这些值pointXpointY给出这些输入?


编辑:插图草图:

在此处输入图像描述

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 回答