我在 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/