CURELab.SignLanguage.Calculator.CSDataProcessor.CalVelocity C# (CSharp) Method

CalVelocity() public method

public CalVelocity ( ) : double[]
return double[]
        public double[] CalVelocity()
        {
            double[] result = new double[dataManager.DataModelList.Count];
            result[0] = 0;
            int[] time = dataManager.DataModelList.Select(x => x.timeStamp).ToArray();
            Vector3D[] right = GetFilteredPosition(dataManager.DataModelList.Select(x => x.position_right).ToArray(), time);
            right = GetFilteredPosition(right, time);
            Vector3D[] left = GetFilteredPosition(dataManager.DataModelList.Select(x => x.position_left).ToArray(), time);
            left = GetFilteredPosition(left, time);
            for (int i = 1; i < result.Length - 1; i++)
            {
                double deltaRight = (right[i + 1] - right[i - 1]).Length;
                double deltaLeft = (left[i + 1] - left[i - 1]).Length;
                result[i] = Math.Sqrt((deltaRight * deltaRight + deltaLeft * deltaLeft) / 2) / (time[i + 1] - time[i - 1]);
            }
            return Normalize(result);
        }

Same methods

CSDataProcessor::CalVelocity ( double data ) : double[]
CSDataProcessor::CalVelocity ( double data, int time ) : double[]