Извините, я не могу помочь вам с математикой, но, возможно, вы могли бы использовать аниматор свойства dummy для вычисления того, что вам нужно? См https://developer.apple.com/videos/play/wwdc2016/216/?time=2521
func animationDuration() -> TimeInterval {
return propertyAnimator().duration
}
func propertyAnimator(initialVelocity: CGVector = .zero) -> UIViewPropertyAnimator {
let timingParameters = UISpringTimingParameters(mass: 4.5, stiffness: 1300, damping: 95, initialVelocity: initialVelocity)
return UIViewPropertyAnimator(duration: assetTransitionDuration, timingParameters:timingParameters)
}