由于已经提出这个问题,我没有得到任何明确的想法。所以我再次问这个问题。我正在努力两天。 我想计算我的设备的相机与相机前面的物体之间的距离。 我尝试使用传感器管理器,如下面link中所建议的那样,但我得到了错误的结果。
我使用了两个传感器加速度计和磁场。
我根据上述链接中的建议,根据设备的方向计算距离。
传感器侦听器中的onSensorChanged回调
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
gravity = event.values.clone();
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
geoMagnetic = event.values.clone();
if (gravity != null && geoMagnetic != null) {
float R[] = new float[9];
float I[] = new float[9];
boolean success = SensorManager.getRotationMatrix(R, I, gravity,
geoMagnetic);
if (success) {
float orientation[] = new float[3];
SensorManager.getOrientation(R, orientation);
azimuth = 57.29578F * orientation[0];
pitch = 57.29578F * orientation[1];
roll = 57.29578F * orientation[2];
}
}
}
肖像:
double dist = Math.abs((float) (1.4f * Math.tan(roll * Math.PI / 180)));
风景:
double dist = Math.abs((float) (1.4f * Math.tan(pitch* Math.PI / 180)));
请提供有关如何计算距离的信息。任何想法和建议都很明显, 提前谢谢。