我正在尝试将我的动作与 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 加速度计值: