我想在C++中創建一個動畫系統,以存儲具有時間和值的關鍵幀。這些值應在播放過程中進行插值,所以我需要按照它們的時間變量對它們進行排序。因爲插值時,我總是隻想在最後和下一個關鍵幀之間進行插值(通常如何實現)。存儲和訪問動畫關鍵幀
我將如何存儲關鍵幀,以便在特定時間之前和之後輕鬆(快速)訪問關鍵幀?
在第一個std :: map出現在我的腦海裏,但那裏有關鍵幀的正確順序的問題......任何想法如何更好地做到這一點?
我想在C++中創建一個動畫系統,以存儲具有時間和值的關鍵幀。這些值應在播放過程中進行插值,所以我需要按照它們的時間變量對它們進行排序。因爲插值時,我總是隻想在最後和下一個關鍵幀之間進行插值(通常如何實現)。存儲和訪問動畫關鍵幀
我將如何存儲關鍵幀,以便在特定時間之前和之後輕鬆(快速)訪問關鍵幀?
在第一個std :: map出現在我的腦海裏,但那裏有關鍵幀的正確順序的問題......任何想法如何更好地做到這一點?
您可以使用std :: vector並保持關鍵幀的正確順序。 假設關鍵幀在向量中按時間排序,則可以在對數時間內提取std::lower_bound
或std::binary_search
的相關關鍵幀。
std::map
內部保留按照嚴格弱排序標準按鍵 排序的元素。因此,如果您使用時間作爲密鑰,您將保持關鍵幀的正確順序。
個人而言,我會使用std :: vector。
所以我可以簡單地使用地圖?不知道他們自動排序。 – theCNG27
如果你不想要STL一個,你可以擁有自己的定製容器,順便說一下,如果你按順序執行向量可能是一個更好的方法 –