如何在 Canvas - Jetpack Compose 上使弧居中?

How to Center an Arc on the Canvas - Jetpack Compose?

我不确定如何进行计算才能使此弧在 canvas 上居中?有人可以指出正确的方向吗?

Canvas(modifier = Modifier
    .background(Color.LightGray)
    .fillMaxWidth()
    .height(300.dp)
) {
        drawArc(
            color = Color.Blue,
            startAngle = 30f,
            sweepAngle = 300f,
            useCenter = false,
            style = Stroke(width = 50f, cap = StrokeCap.Round),
            size = size/2.25F
        )
}

drawArc方法中使用topLeft参数。

类似于:

    val sizeArc = size/2.25F
    drawArc(
        color = Color.Blue,
        startAngle = 30f,
        sweepAngle = 300f,
        topLeft = Offset((size.width - sizeArc.width)/2f,(size.height - sizeArc.height)/2f),
        useCenter = false,
        style = Stroke(width = 50f, cap = StrokeCap.Round),
        size = sizeArc
    )

@Composable
fun CustomArc() {
    Canvas(modifier = Modifier.fillMaxSize()) {
        val arcRadius = 200f
        val canvasWidth = size.width
        val canvasHeight = size.height

        drawArc(
            color = Color.Red,
            startAngle = -90f, //start angle is always in clockwise direction
            sweepAngle = 270f, // angle formed between the start angle
            useCenter = false,
            size = Size(arcRadius, arcRadius),
            topLeft = Offset(
                (canvasWidth / 2) - (arcRadius / 2),
                canvasHeight / 2 - (arcRadius / 2)
            ),
            style = Stroke(width = 10f, cap = StrokeCap.Round)
        )
    }
}