How to draw Arc between two points on the Canvas?

后端 未结 7 1214
渐次进展
渐次进展 2020-11-28 04:27

I have two points in the canvas, now I\'m able to draw a line between those points like this below image by using

This code canvas.drawLine(p1.x, p1.y, p2.x,

7条回答
  •  日久生厌
    2020-11-28 04:57

    first we need to visual how the coordinates are in terms of start and sweep angels then it will become more clear.

    so if you wanted just the right top piece of the circle, we could do something like this:

     val rect = RectF(0f, 0f, 500f, 300f)
            val paint = Paint()
            paint.apply {
                strokeWidth = 5f
                setStyle(Paint.Style.STROKE)
                color = COLOR.BLUE
            }
             path.addArc(rect, 270f, 90f)
    

    ..

    this starts at 270 (per the diagram above and 'sweeps` 90 degrees forward. you then have this shape:

    let's create one more so you get the hang of it. this time let's use a negative value: we want to create a semi half moon (arc) starting from the right side:

        path.addArc(rect, 0f, -180f)
    

    here we started at 0 and 'sweeped` -180 degrees. and the results are:

提交回复
热议问题