当前位置: 首页 > 面试题库 >

在Android 2.1中使用getRotationMatrix和getOrientation

丁书
2023-03-14
问题内容

我一直对此问题困扰太久了。此代码应输出加速度计的dx,dy,dz和dx的总计。它还应输出方位角,俯仰和横滚。

我已经使用了此处提供的信息,但无济于事。

该代码无法正确输出俯仰,方位角或横滚。最后三个文本视图分别输出0.0,-0.0,-0.0。

switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER:
        accelerometerValues = event.values.clone();
    case Sensor.TYPE_MAGNETIC_FIELD:
        geomagneticMatrix = event.values.clone();
        sensorReady = true;
        break;
    default:
        break;
}

if (geomagneticMatrix != null && accelerometerValues != null && sensorReady) {
    sensorReady = false;

    float[] R = new float[16];
    float[] I = new float[16];

    SensorManager.getRotationMatrix(R, I, accelerometerValues, geomagneticMatrix);

    float[] actual_orientation = new float[3];
    SensorManager.getOrientation(R, actual_orientation);

    tvXCoordinate.setText(accelerometerValues[0] + "");
    tvYCoordinate.setText(accelerometerValues[1] + "");
    tvZCoordinate.setText(accelerometerValues[2] + "");

    floatXTotal += accelerometerValues[0];
    tvXTotal.setText(floatXTotal + "");

    tvAzimuth.setText(actual_orientation[0] + "");
    tvPitch.setText(actual_orientation[1] + "");
    tvRoll.setText(actual_orientation[2] + "");
}

问题答案:

我可能丢失了一些内容(并且您可能已经解决了这个问题),但是对我来说,您的switch语句似乎不正确:

switch (event.sensor.getType()) {
        case Sensor.TYPE_ACCELEROMETER:
            accelerometerValues = event.values.clone();
        case Sensor.TYPE_MAGNETIC_FIELD:
            geomagneticMatrix = event.values.clone();
            sensorReady = true;
            break;
        default:
            break;
    }

如果传感器事件TYPE_ACCELEROMETER从事件的值将被克隆到两个accelerometerValuesgeomagneticMatrixsensorReady将设置为true。我认为您可能需要更改此块的顺序,或者可能break;在第一种情况之后添加一个。



 类似资料:
  • 问题内容: 我 必须 使用商业Java库,并且想从Python中做到这一点。Jython非常强大,在后面有一些发行版本的情况下,我对此表示满意。但是,我 也想 使用NumPy,它显然不适用于Jython。CPype和Java数字库等选项不受欢迎。前者基本上已经死了。后者大多不成熟,缺乏NumPy的易用性和广泛接受性。我的问题是:如何使Jython和Python代码互操作?从Cpython或其他方式

  • 问题内容: 我正在建立一个图表,我想接收每个月的数据。 这是我的第一个有效的要求: 但是,就我而言,我必须编写12个请求以接收前12个月的数据,有什么技巧可以避免写: 我听说过INTERVAL,我去了MySQL文档,但是我没有实现它。 有使用INTERVAL的例子吗? 问题答案: 您需要: 应该管用。

  • 问题内容: 我一直在阅读此选择器,并得到相互矛盾的答案。 在:/ deep /和::shadow在CSS选择器中是什么意思? 我们看: 正如Joel H.在评论中指出的那样,Chrome自此之后就弃用了/ deep /组合器,并在IE中给出了语法错误。 我们看: / deep /不再存在,所以我认为我们不应该支持它。>>>是新版本,可能应该支持 我们看: / deep /选择器还具有别名>>>。我

  • 问题内容: 我想在我的Flask应用程序中包含一个sass编译器。有一种普遍接受的方法吗? 问题答案: Flask-Assets扩展(使用webassets库)可以用于此目的。以下是将其配置为使用SCSS的pyScss编译器(在Python中实现)的方法: 并在模板中包括以下内容: SCSS文件也将在调试模式下进行编译。 pyScss只支持SCSS语法,但也有其他过滤器(,和)使用原始的Ruby实

  • 问题内容: 我正在尝试学习python,mongodb和flask,并使用了Miguel Grinberg的VERY EXCELLENT博客,他在blog.miguelgrinberg.com上提供了很多教程 我有一个小型的RESTful服务器,可以正常工作,但现在想从mongo而不是mysql中提取内容 我可以使用下面的代码提取一条mongo记录,但正在努力使其呈现。 我在下面的代码中使用箭头来

  • 修复我的函数,使用聚合查询,计算每个用户的推文数量,将它们添加到数组中,并返回推文最多的5个用户。 使用聚合查询,计算每个用户的tweet数量。在相同的阶段,使用累积每个用户的所有tweet文本。 将你的输出限制在推特最多的5个用户。 结果文档应仅包括以下字段: (用户的屏幕名称), (为用户找到的推文数量), (为用户找到的tweet文本列表) 为了实现前面的目标,我正在测试以下代码: 首先,我