【问题标题】:Sensors and min3d ANDROID传感器和 min3d ANDROID
【发布时间】:2011-06-08 18:51:52
【问题描述】:

我在为 Android 实现增强现实应用时遇到了一些麻烦,我希望有人可以帮助我。 (对不起我的英语......)

基本上我从加速度计和磁场传感器获取值,然后当我读取 remapCoordinatessystem(inR, AXIS_X, AXIS_Z, outR)...最终我得到方向...

public void onSensorChanged(SensorEvent event) {        
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        mGravity = event.values;
    }
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
        mGeomagnetic = event.values;
    }
    if (mGravity != null && mGeomagnetic != null) {
        float R[] = new float[9];
        float I[] = new float[9];
        boolean success = SensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic);
        float outR[] = new float[9];
        SensorManager.remapCoordinateSystem(R, SensorManager.AXIS_X, SensorManager.AXIS_Z, outR);
        if (success) {
            float orientation[] = new float[3];
            SensorManager.getOrientation(outR, orientation);
            // Here I pass the orientation values to the object, which is render by the min3d framework
        }
    }
}

我得到的值是否正确?或者我需要将它们转换成度数?¿我迷路了......

然后我用从传感器读取的值旋转我的 3D 对象……但对象根本没有移动。

public void updateScene() {
    objModel.rotation().y = _orientation[2];
    objModel.rotation().x = _orientation[1];
    objModel.rotation().z = _orientation[0];        
}

OpenGL 不是我的朋友...所以我不确定我是否正确转换...这是旋转轴的顺序还是无关紧要...以及方向的哪个值应对应Min3D 加载的 3D 对象的轴?

如果这不是我必须遵循的路径...有人可以指导我找到正确的路径吗?与此作斗争已经有几个星期了。

非常感谢...(StackOverflow 爱好者)

【问题讨论】:

    标签: android 3d augmented-reality sensors


    【解决方案1】:

    我遇到了问题

    mGeomagnetic = event.values;
    

    你应该写

    mGeomagnetic = event.values.clone(); 
    

    改为

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多