在Android中使用arcTo创建凹路径

时间:2015-03-18 00:26:40

标签: android path android-canvas

我想绘制这样的路径并填写它:

enter image description here

如果原点是带有(x,y)坐标的红点。我应该在下面的三点中写下这条路径。我已经尝试了很多,但无法弄清楚arcTo是如何工作的。

    path.moveTo(x, y);
    path.arcTo(...);
    path.arcTo(...);
    canvas.drawPath(path, paint);

1 个答案:

答案 0 :(得分:6)

ArcTo绘制矩形中的圆弧,从起始角度到角度+扫掠角度。其余的都是纯粹的几何形状。

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.rgb(255, 139, 40));

    float x = 500, y = 500, r = 500, angle = 50;

    Path path = new Path();

    path.arcTo(new RectF(x, y-r, x+2*r, y+r),180,angle);
    path.lineTo((float) (x - r * (1 - Math.cos(Math.toRadians(angle)))), (float) (y - r * Math.sin(Math.toRadians(angle))));
    path.arcTo(new RectF(x - 2 * r, y - r, x, y + r), -angle, angle);
    path.close();


    canvas.drawPath(path,paint);

enter image description here