首页 > 解决方案 > 以匹配指南针旋转数据的速率连续旋转图形

问题描述

我正在构建一个 iOS 应用程序,该应用程序需要根据传入的罗盘航向数据(实际上是航空 GPS 系统以 10 Hz 的频率到达的 GPS 地面轨迹数据)平滑旋转图像。我可以用正确的持续时间(0.1 秒)轻松地将旋转动画到新的所需角度,但效果仍然很粗糙 - 你可以看出它实际上是一系列离散的动画,而不是一个流体运动。这是当前非常简单的动画代码:

    // rotate the compass ring
    if let cv = self.compassView {
        UIView.animate(withDuration: 0.1, animations: {
            cv.transform = CGAffineTransform(rotationAngle: CGFloat(newAngle))
        })
    }

有没有人有一个很好的工作算法来流畅地旋转这样的东西?创建单个动画的一些巧妙方法(可能假设一个完整的 360 度),然后随着旋转速率的变化而修改其速度?苹果自己的指南针应用似乎做了类似的事情。

标签: swiftuiviewrotationcompass

解决方案


推荐阅读