我正在尝试绘制一个带有圆角的矩形。我有一个能够完成这个任务的 JavaScript 路径,但是 JavaScript 的 arcTo 方法需要一个矩形(用来定义其椭圆形)和一个参数来设置扫描范围。
然而,在 Android 版本中有三个参数。第一个参数是矩形椭圆,我认为我已经正确地定义了它,接下来的两个参数分别是起始角度和扫描角度(我不理解使用方法)。但是,当我尝试根据自己的猜测进行调整时,我的弧线看起来与期望的完全不同。
有人知道一个好的教程吗?
具体来说,如果我想从12-3在钟表面上绘制一条弧线,并假设我有一条线从3延伸到底部,然后需要将角从3弯到6等等,那么这两个参数会是什么样子呢?
这是我的代码(现在忽略其中的弧线数字...这只是我猜测如何工作的最新迭代,之前更有意义的尝试失败了):
Path ctx = new Path();
ctx.moveTo(X+5,Y); //A
ctx.lineTo(X+W-5,Y);//B
ctx.arcTo(new RectF(X+W, Y, X+W, Y+5), -180, 90); //B arc
ctx.lineTo(X+W,Y+H-5); //C
ctx.arcTo(new RectF(X+W,Y+H,X+W-5,Y+H),90,180); //C arc
ctx.lineTo(X+W/2 +6,Y+H);
ctx.lineTo(X+W/2,Y+H+8);
ctx.lineTo(X+W/2-6,Y+H);
ctx.lineTo(X+5,Y+H);
ctx.arcTo(new RectF(X,Y+H,X,Y+H-5),180,270);
ctx.lineTo(X,Y+5);
ctx.arcTo(new RectF(X,Y,X+5,Y),270,0);
Paint p = new Paint();
p.setColor(0xffff00ff);
canvas.drawPath(ctx, p);
非常感谢。