0

在我的游戏中,我从加速度计获得加速度。计算我的计算,我必须应用一个系数来转换像素单位的测量单位。

我应用为 Android 应用程序建立的系数(在示例中):

 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
 mXDpi = metrics.xdpi;
 mYDpi = metrics.ydpi;
 mMetersToPixelsX = mXDpi / 0.0254f;
 mMetersToPixelsY = mYDpi / 0.0254f;

为了我的加速,得到像素/秒^2。通过这种方式,我可以在代码中的任何地方使用像素,而不是全部以米为单位。

这是正确的?

4

1 回答 1

0

这将取决于你想要强加什么样的物理。(这假设您需要牛顿力学。)如果您想跟踪设备的运动,那么您需要对加速度进行积分以获得速度,然后对速度进行积分以获得位置。或者我想,您可以跳过中间步骤并使用 0.5*acceleration^2 从“加速度”转换为位置变化(然后将该结果乘以您可能需要通过实验确定的适当比例因子)。(第二种方法可能无法正确处理恒定运动。)对于每个独立维度,速度和位置将是具有这些递归关系的累积和:

velocity[t] = acceleration[t] *(t -(t-1) ) + velocity[t-1]
position[t] = position[t-1] + velocity[t]*(t -(t-1) )
于 2012-04-17T12:58:48.947 回答