Returns the average distance from the centroid for all pointers that are currently and were previously down.
CalculateCentroidSize
@Composable
fun CalculateCentroidSize() {
var centroidSize by remember { mutableStateOf(0f) }
var position by remember { mutableStateOf(Offset.Zero) }
Box(
Modifier.drawBehind {
// Draw a circle where the gesture is
drawCircle(Color.Blue, centroidSize, center = position)
}
.pointerInput(Unit) {
awaitEachGesture {
awaitFirstDown().also { position = it.position }
do {
val event = awaitPointerEvent()
val size = event.calculateCentroidSize()
if (size != 0f) {
centroidSize = event.calculateCentroidSize()
}
val centroid = event.calculateCentroid()
if (centroid != Offset.Unspecified) {
position = centroid
}
} while (event.changes.any { it.pressed })
}
}
.fillMaxSize()
)
}