我正在尝试将我的动作与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加速度计值:
答案 0 :(得分:1)
你的函数采用参数T2,我假设它是加速器输入?但是你使用的T已经声明为双T = 0.005;所以你的功能总是以静态的速度前进。