---
title: "calculateCentroid"
description: "Returns the centroid of all pointers that are down and were previously down. If no pointers are
down, [Offset.Unspecified] is returned. If [useCurrent] is `true`, the centroid of the
[PointerInputChange.position] is returned and if `false`, the centroid of the
[PointerInputChange.previousPosition] is returned. Only pointers that are down in both the
previous and current state are used to calculate the centroid.

Example Usage:"
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
fun PointerEvent.calculateCentroid(useCurrent: Boolean = true): Offset
```


Returns the centroid of all pointers that are down and were previously down. If no pointers are
down, `Offset.Unspecified` is returned. If `useCurrent` is `true`, the centroid of the
`PointerInputChange.position` is returned and if `false`, the centroid of the
`PointerInputChange.previousPosition` is returned. Only pointers that are down in both the
previous and current state are used to calculate the centroid.

Example Usage:



## Code Examples
### CalculateCentroidSize
```kotlin
@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()
    )
}
```

