[瞄准辅助] 实现一种柔和平滑的瞄准辅助
目标
实现一种轻量级的平滑瞄准辅助,不会有强烈的吸附感。
参考: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号