lvjincheng 4 лет назад
Родитель
Сommit
1a86232965
1 измененных файлов с 4 добавлено и 3 удалено
  1. 4 3
      Assets/BowArrow/Scripts/Bluetooth/o09Axis.cs

+ 4 - 3
Assets/BowArrow/Scripts/Bluetooth/o09Axis.cs

@@ -157,6 +157,7 @@ public class o0MagneticCalibrater//默认在无磁干扰环境下,有磁干扰
     }
     }
 
 
     HashSet<Vector3> Point = default;
     HashSet<Vector3> Point = default;
+    int PointMaxCount = 50;
     Dictionary<(Vector3, Vector3), float> Distance = default;
     Dictionary<(Vector3, Vector3), float> Distance = default;
     public void AddPoint(Vector3 v)
     public void AddPoint(Vector3 v)
     {
     {
@@ -256,7 +257,7 @@ public class o0MagneticCalibrater//默认在无磁干扰环境下,有磁干扰
         if (Calibration)
         if (Calibration)
         {
         {
             AddPoint(v);
             AddPoint(v);
-            if (Point.Count > 100)
+            if (Point.Count > PointMaxCount)
             {
             {
                 RemovePoint(MinDistancePoint());
                 RemovePoint(MinDistancePoint());
                 _Radius = RadiusScale();
                 _Radius = RadiusScale();
@@ -297,7 +298,7 @@ public class o0MagneticCalibrater//默认在无磁干扰环境下,有磁干扰
             var v = i - _Center;
             var v = i - _Center;
             ScaleDistance.Add(new Vector3(v.x / _Radius.x, v.y / _Radius.y, v.z / _Radius.z).magnitude);
             ScaleDistance.Add(new Vector3(v.x / _Radius.x, v.y / _Radius.y, v.z / _Radius.z).magnitude);
         }
         }
-        while (ScaleDistance.Count < 100)
+        while (ScaleDistance.Count < PointMaxCount)
             ScaleDistance.Add(0);
             ScaleDistance.Add(0);
         float average = 0;
         float average = 0;
         foreach (var i in ScaleDistance)
         foreach (var i in ScaleDistance)
@@ -307,7 +308,7 @@ public class o0MagneticCalibrater//默认在无磁干扰环境下,有磁干扰
         foreach (var i in ScaleDistance)
         foreach (var i in ScaleDistance)
             variance += Mathf.Pow(average - i, 2);
             variance += Mathf.Pow(average - i, 2);
         variance /= ScaleDistance.Count;
         variance /= ScaleDistance.Count;
-        return Mathf.Pow((1 - variance / average), 10) * 100;
+        return Mathf.Pow((1 - variance / average), 10) * PointMaxCount;
         //return variance;
         //return variance;
     }
     }
 }
 }