[瞄準輔助] 實現一種柔和平滑的瞄準輔助
目標
實現一種輕量級的平滑瞄準輔助,不會有強烈的吸附感。
參考:https://www.youtube.com/watch?v=yGci-Lb87zs&list=PLG9sbQS_QV1-6MnaNaN-uO5fUkaTocN58&index=23
思路
x軸是輸入,y軸是結果(瞄準線的朝向)
當沒有輔助時,x和y是45度映射關系,如下圖

當立馬強制輔助吸附到Target中心時,x和y的關系如下圖:

加一些線性的過渡,如下圖:

添加2種類型過渡: 1.核心的壓縮過渡 2.從壓縮過渡返回到正常映射的過渡(或者反過來) 如下圖

1. 使用 Monotone cubic 進行曲線的構造 https://en.wikipedia.org/wiki/Monotone_cubic_interpolation
2.構建兩種類型的點去構建曲線
private enum PointType { //--核心壓縮過渡-- Start = 0, Center = 1, End = 2, //--返回線性過渡-- BlackStart = 3, BlackEnd = 4 }
需要處理的細節比較多:
比如:
1.多個xRang交叉的問題 (冗余點的剔除 )
2.有些過于靠近的xEnd和 nextXBegin是否可以直接合并 (冗余點的合并)
3.首尾交叉(360->0)的問題 (通過延伸首尾數據去解決,會增加一些點數據,但比較直接去解決問題)
實現
這里有具體的實現 https://github.com/fechen2/AimAssistTest?tab=readme-ov-file
效果還可以


浙公網安備 33010602011771號