android - 如何在 Canvas 上的两点之间绘制弧线?

标签 android android-canvas ondraw

我在 Canvas 上有两个点,现在我可以使用如下图在这些点之间画一条线

这段代码canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint); enter image description here

我想在两点之间画圆弧,如下图所示。

enter image description here

我怎么能画成这样。

最佳答案

最后我从这段代码中得到了解决方案:

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/

相关文章:

android - 将月球着陆器转换为使用 Opengl

android - 如何从线程中的套接字获取数据到/从套接字获取数据?

android - QtCreator 甚至无法构建空项目 - 执行此行时发生以下错误

java - int 永远不等于设置的值

java - 从 Java 调用 Kotlin 高阶函数

android - Canvas 的性能问题

android - 一个简单的一键触摸绘图 View ,但在触摸完成之前不断获得 ACTION_CANCEL

android - 在 Android 中倾斜 TextView

android - 在从 url 获取的资源可绘制对象中显示标记

android - 绘制多边形并填充它