determineSegment function
Determines which segment index is at the top position based on the final endRotation.
Implementation
int determineSegment(List<WheelSegment> segments, double endRotation) {
final double normalizedAngle = endRotation % (2 * pi);
final double segmentAngle = 2 * pi / segments.length;
final double invertedAngle = 2 * pi - normalizedAngle;
final int segmentIndex = (invertedAngle ~/ segmentAngle) % segments.length;
return segmentIndex;
}