在弧形中心绘制位图?

3
在我的自定义视图中,我像这样绘制多个填充的Arc
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设置什么值。这是我拥有的数据:
  • 椭圆中心坐标和半径。
  • 起始角和扫描角(因此,可以得出结束角)。
是否有一种方法可以通过这些输入值来确定pointXpointY的值?
编辑:一个示意图 :

enter image description here


你能否提供一张截图,展示你想要实现的内容? - Sunny Kumar Aditya
@SunnyKumarAditya 已经用草图进行了编辑。请看一下。 - iTurki
2个回答

3

这个答案 在做了一些调整后对我帮助很大:

double radius = width/2;
double x = radius + (radius)*Math.cos(-angle);
double y = radius + (radius)*Math.sin(-angle);

我认为这仅在起始角度为0时有效。是否有一种方法可以设置非零的起始和结束角度,同时仍然获得它们的中心? - Dzhuneyt

0
使用你的变量。
试试这个:
double x = C.x + r * Math.cos(theta * Math.PI / 180);
double y = C.y + r * Math.sin(theta * Math.PI / 180);

thetaarc 的结束角度减去起始角度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接