我有两个圆圈和圆圈的中心。我想在这些点之间画一条弧。方法drawArc
很简单,不符合我的目的。
有人帮忙吗?
答案 0 :(得分:23)
您可以使用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);
祝你好运!
答案 1 :(得分:2)
Graphics.drawArc
需要以下参数:
根据您的弧起点和终点,可以计算一个边界框,其中将绘制弧。这为您提供了足够的信息来提供参数:x,y,width和height。
你没有指定所需的角度,所以我猜你可以任意选择一个。