コード例 #1
0
 /// <summary>
 /// Clears all gesture data.
 /// </summary>
 public void Clear()
 {
     Xdata.Clear();
     Ydata.Clear();
     Zdata.Clear();
     Gdata.Clear();
     Time.Clear();
 }
コード例 #2
0
        /// <summary>
        /// Stores this frame of accelerometer data for simple gesture recognition.
        /// </summary>
        /// <param name="x">The x-axis acceleration</param>
        /// <param name="y">The y-axis acceleration</param>
        /// <param name="z">The z-axis acceleration</param>
        /// <param name="dT">time elapsed since last frame in seconds</param>
        internal void feedData(int x, int y, int z, double dT)
        {
            if (totalTime + dT == totalTime)
            {
                totalTime = 0;
            }
            totalTime += dT;
            //check Maxima
            if (Math.Abs(x) > maxXYZ)
            {
                maxXYZ = Math.Abs(x);
            }
            if (Math.Abs(x) > maxXYZ)
            {
                maxXYZ = Math.Abs(y);
            }
            if (Math.Abs(x) > maxXYZ)
            {
                maxXYZ = Math.Abs(z);
            }

            double grav = Math.Sqrt(x * x + y * y + z * z);

            if (grav > maxG)
            {
                maxG = grav;
            }

            //log this frame
            Xdata.Add(x);
            Ydata.Add(y);
            Zdata.Add(z);
            Gdata.Add(grav);
            Time.Add((int)(totalTime * 1000));

            //clean old data
            while (Time.Count > 0 && totalTime - Time[0] > 1000)
            {
                Xdata.RemoveAt(0);
                Ydata.RemoveAt(0);
                Zdata.RemoveAt(0);
                Gdata.RemoveAt(0);
                Time.RemoveAt(0);
            }
        }