У меня есть приложение, которое показывает группу людей, у каждого из которых есть свое происхождение и угол зрения.
struct Location {
var centre:CGPoint
var facing:Angle
}
SwiftUI волшебным образом и автоматически выполняет большую часть анимации, когда они перемещаются из местоположения A в местоположение B.
withAnimation {
person.location = newLocation
}
Однако для свойства Angle (облицовка) я хочу, чтобы анимация проходила по кратчайшему пути (имея в виду, что в реальном мире углы повторяются).
например Swift UI корректно анимирует при изменении угла 5 -> 10 (градусов)
5,6,7,8,9,10
но переходя от 2 до 358, нужно пройти долгий путь
SwiftUI делает 2,3,4,5,6,7 ......., 357,358
где я бы хотел это сделать
2,1,0,359,358
как я могу это сделать?
Спасибо
update: я надеюсь на решение, которое позволит мне работать с системой анимации, возможно, используя новую структуру MyAngle, которая напрямую предоставляет шаги анимации, возможно, используя какой-то модификатор анимации. .easeInOut изменяет шаги - есть ли эквивалентный подход, при котором я могу создать анимацию .goTheRightWay?