|
|
@@ -198,26 +198,25 @@ public class AimHandler : MonoBehaviour
|
|
|
MagCalibrationButton.GetComponentInChildren<Text>().text = "开始地磁计校准";
|
|
|
PlayerPrefs.SetString("o0MagneticCalibrater", JsonConvert.SerializeObject(MagCalibrater));
|
|
|
|
|
|
- #region jc-看校准是否完美,求Records方差
|
|
|
+ #region 看校准是否完美,求Records方差
|
|
|
if (list == null || list.Count == 0) isCalibrateMagPerfect = false;
|
|
|
else
|
|
|
{
|
|
|
- float sumV = 0;
|
|
|
- float[] listArray = new float[list.Count];
|
|
|
+ double sumV = 0;
|
|
|
+ double[] listArray = new double[list.Count];
|
|
|
for (int i = 0; i < list.Count; i++)
|
|
|
{
|
|
|
listArray[i] = MagCalibrater.Update(list[i]).magnitude;
|
|
|
sumV += listArray[i];
|
|
|
}
|
|
|
- float avarageV = sumV / listArray.Length;
|
|
|
- float varianceV = 0;
|
|
|
- foreach (float vvv in listArray)
|
|
|
+ double avarageV = sumV / listArray.Length;
|
|
|
+ double varianceV = 0;
|
|
|
+ foreach (double vvv in listArray)
|
|
|
{
|
|
|
- varianceV += Mathf.Pow(vvv - avarageV, 2);
|
|
|
+ varianceV += Math.Pow(vvv - avarageV, 2);
|
|
|
}
|
|
|
varianceV /= listArray.Length;
|
|
|
isCalibrateMagPerfect = varianceV < 0.001;
|
|
|
- Debug.Log("jc-地磁校准方差=" + varianceV);
|
|
|
PopupMgr.ins.ShowTip("地磁校准方差 = " + varianceV);
|
|
|
}
|
|
|
#endregion
|