xna Phidg​​et空间加速度计平滑

时间:2012-02-15 16:45:07

标签: c# xna accelerometer

我正在开发的xna游戏中使用phidget spatial 0/0/3加速度计,并在Stackoverflow上找到此post

我试图实现显示的代码:

const SIZE = 10;
float[] xVals = new float[SIZE];

float xAvg = 0;

function runAverage(float newX){
  xAvg += newX/SIZE;
  xVals.push(newX);
  if(xVals.length > SIZE){
    xAvg -= xVals.pop()/SIZE;
  }
}

我正在使用它来实现: 我的加速度计每168ms返回一次值。

private const int SIZE = 10;
private static Stack<Vector3> axisVals = new Stack<Vector3>(SIZE);
private static Vector3 axisAvg = new Vector3();

public static Vector3 runningAverage(Vector3 newAxis)
{
  axisAvg += newAxis / SIZE;
  axisVals.Push(newAxis);

  if (axisVals.Count > SIZE)
  {
    axisAvg -= axisVals.Pop() / SIZE;
  }
  return axisAvg;
}

修改

我忘记发布问题了。正如Duckett先生所说。

我遇到的问题是,一旦堆叠满了,游戏就不会对加速计的运动做出长时间的反应。

0 个答案:

没有答案