我想绘制一个带圆角的矩形。我有一个JavaScript路径,这样做,但JavaScript的arcTo方法需要一个矩形(来定义它的椭圆形),然后一个参数设置扫描。有人可以解释arcTo的最后两个参数吗?
但是,在Android版本中有三个参数。矩形椭圆形(我认为我已经正确定义了),然后是startAngle和sweepAngle(我不了解它的用法),但是我的弧形看起来不像我期待的那样,猜猜他们应该工作。
有没有人知道这个好教程?
具体而言,我试图理解如果我试图从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);
多谢。
嘿,我在绘制弧线的时候遇到了问题,我试着按照你的建议,但我无法得到它..你能看到我问的问题吗?在那里,我有我的问题详细,所以你最好理解。 http://stackoverflow.com/questions/17449339/how-to-define-te-startangle-and-sweepangle-for-arcto-method-android谢谢! :) – 2013-07-03 13:46:17
想象你的弧被一个矩形包围(并且一直延伸到该矩形的内部,即使只显示你想要显示的部分)。第一个参数是椭圆内点的起点位置,第二个参数是要抓取完整椭圆的度数,以弧线为弧段。 – 2013-07-03 17:18:29
谢谢!我知道我做错了什么。我将最终度数值传递给sweepAngle参数。考虑到startAngle参数,我不得不通过多少度数来抓取,正如我所说的那样,而不是finalAngle – 2013-07-03 18:01:10