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

10-12 01:45