存储和访问动画的关键帧

Store and access keyframes for animations

本文关键字:关键帧 动画 访问 存储      更新时间:2023-10-16

我想在c++中创建一个动画系统,我在其中存储关键帧,有时间和值。这些值将在回放期间内插,所以我需要按它们的时间变量排序。因为当插值时,我总是想只在最后和下一个关键帧之间进行插值(通常是这样做的)。

如何存储关键帧,以便在特定时间前后轻松(快速)访问关键帧?

首先std::map出现在我的脑海中,但是我在关键帧的正确顺序上有问题…有什么更好的办法吗?

您可以使用std::vector并保持关键帧的正确顺序。假设关键帧在矢量中按时间排序,然后可以提取与std::lower_boundstd::binary_search在对数时间内相关的关键帧

std::map内部保持元素按键排序遵循严格的弱排序准则。所以,如果你用时间作为关键,你将保持关键帧的正确顺序。

我个人会使用std::vector.