来自Android / iPhone设备的Accelerometer值

时间:2010-04-23 03:25:30

标签: java iphone android accelerometer

我正在尝试将我的动作与Android设备映射到OpenGL场景中。

我记录了一个简单动作的加速度计值:移动手机(平放在桌子上)向前10厘米(+ x)​​,然后向后10厘米(-x)。

问题在于,当用于计算速度和位置时,此值仅使opengl立方体前进。似乎记录的负加速度不足以降低速度并反转其运动。

可能是什么问题?

这是我的功能,每次新数据进入时都会更新速度和位置:

void updatePosition(double T2) {
    double T = 0.005;
    Vec3 old_pos = position.clone(), old_vel = velocity.clone();

    velocity = old_vel.plus(acceleration.times(T));
    position = old_pos.plus(old_vel.times(T).plus(acceleration.times(0.5 * Math.pow(T, 2))));

}

这是整个捕获时间内的X,Y,Z加速度计值:

alt text http://img25.imageshack.us/img25/7528/forces.jpg

1 个答案:

答案 0 :(得分:1)

你的函数采用参数T2,我假设它是加速器输入?但是你使用的T已经声明为双T = 0.005;所以你的功能总是以静态的速度前进。