我在 Canvas 上有两个点,现在我可以使用如下图在这些点之间画一条线
这段代码canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint);
我想在两点之间画圆弧,如下图所示。
我怎么能画成这样。
最佳答案
最后我从这段代码中得到了解决方案:
float radius = 20;
final RectF oval = new RectF();
oval.set(point1.x - radius, point1.y - radius, point1.x + radius, point1.y+ radius);
Path myPath = new Path();
myPath.arcTo(oval, startAngle, -(float) sweepAngle, true);
要计算 startAngle
,请使用以下代码:
int startAngle = (int) (180 / Math.PI * Math.atan2(point.y - point1.y, point.x - point1.x));
这里,point1
表示您要开始绘制圆弧的位置。 sweepAngle
表示两条线之间的角度。我们必须使用两个点来计算,比如我的问题图像中的蓝点。
关于android - 如何在 Canvas 上的两点之间绘制弧线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131954/