drawArc() `在 jetpack compose 的 DrawScope 中工作?

问题描述 投票:0回答:1

实际上我正在阅读这篇文章。我对 startAngle 的工作和 drawArc() 中的弧线方向感到非常困惑,有人能解释一下吗?

我已经阅读了很多答案,我浪费了大约 2 到 3 个小时来尝试理解这个功能。

在下面的代码中为什么半圆在左侧。因为两个角度都是正的所以它应该在右侧?

Preview(showBackground = true)
@Composable
fun PreviewAnimatedRectComposable() {
   GooglePhotosIcon()
}




@Composable
private fun GooglePhotosIcon() {
   Canvas(
       modifier = Modifier
           .size(100.dp)
           .padding(16.dp)
           .border(1.dp , Color.Magenta)
   ) {
       drawArc(
           color = Color(0xFFf04231),
           startAngle = 270f,
           sweepAngle = 180f,
           useCenter = true,
           size = Size(size.width * .50f, size.height * .50f),
           topLeft = Offset(size.width * .25f, 0f)
       )
   }
}
canvas android-jetpack-compose android-canvas android-jetpack mobile-development
1个回答
0
投票

实际上,在阅读答案时,我看到了一些带有 xml 的答案,并且我得到了一些图表

circle In rectangle

circle in degrees

所以在android中y轴与cristian坐标系相反。 so StartAngle : 表示圆弧的起始位置 scrapAngle :表示弧的范围 如果任何这些角度为负,则弧的方向为逆时针方向,否则为顺时针方向。 从startAngle开始,我们根据startAngle或sweepAngle是正还是负来决定弧顺时针或逆时针移动。

现在,如果我们为起始角度和扫描角度提供不同的符号或浮点值,我们可以看到它们根据图表和上面的解释工作。

© www.soinside.com 2019 - 2024. All rights reserved.