Exemplo n.º 1
0
    public static MinMax3 Create()
    {
        MinMax3 mmm = new MinMax3();

        mmm.x = MinMax.Create();
        mmm.y = MinMax.Create();
        mmm.z = MinMax.Create();
        return(mmm);
    }
Exemplo n.º 2
0
    public CalibrationData calibrate()
    {
        Vector3        avg  = Vector3.zero;
        MinMax3        mmm  = MinMax3.Create();
        List <Vector3> data = new List <Vector3>(size);

        foreach (Vector3 v in readings.getValues())
        {
            data.Add(v);
        }
        data.Sort((a, b) => { return(a.sqrMagnitude.CompareTo(b.sqrMagnitude)); });

        //average & minMax
        int     samples  = (int)(data.Count * 0.88f);
        Vector3 deviaton = Vector3.zero;

        for (int i = 0; i < samples; ++i)
        {
            mmm.add(data[i]);
            avg += data[i];
        }
        avg /= samples;

        //standard deviation
        for (int i = 0; i < samples; ++i)
        {
            deviaton += (data[i] - avg).componentsSquared();
        }
        deviaton = (deviaton / samples).componentsSqrt();

        //runs
        Run[] avgRuns = runBuffer3.averageRuns();
        Run[] runStandardDeviations = runBuffer3.standardDeviation(avgRuns);

        CalibrationData cd = new CalibrationData()
        {
            average = avg, minMax3 = mmm, standardDeviation = deviaton, averageRuns = avgRuns, runSDS = runStandardDeviations
        };

        Debug.Log(cd.ToString());
        EditorApplication.isPaused = true;
        return(cd);
    }