获得仰角?

从加速度计,是否可以获得仰角? 对于那些不知道的人,仰角是:
仰角
加速度计测量可以实现吗?

因为你不知道用户在哪里,所以不可能将“仰角”视为视线。

你可以做的是假设用户将设备的屏幕直接定向到他的眼睛。

有了这个假设,你可以使用http://developer.android.com/reference/android/hardware/SensorManager.html#getRotationMatrix(float [],float [],float [],float [])来获取方向设备并获得y轴和(x,z)平面之间的角度。

它的作用是它使用3轴上的加速度计来查看引力的方向。

这仅在设备静止时才有效。 如果您需要更好地处理运动,则应使用陀螺仪(如果它存在于设备中)。

另一件事是,根据您的应用程序,您可能希望查看一些增强现实框架,如果这是您正在研究的那种应用程序。

编辑:这是我放在一起的一些代码。 我的代码中的主要function是:

public void onSensorChanged(SensorEvent event) { int sensor = event.type; float[] values = event.values; int i; StringBuffer str=new StringBuffer(); // do something with the sensor data TextView text = (TextView) findViewById(R.id.my_text); float[] R = new float[9]; // rotation matrix float[] magnetic = new float[3]; float[] orientation = new float[3]; magnetic[0]=0; magnetic[1]=1; magnetic[2]=0; str.append("From Sensor :\n"); for(i=0;i 

我没有尝试使用真实设备,仅在仿真器上使用SensorSimulator 。

如果你想要整个源包与传感器模拟器需要的几个工具,给我发电子邮件,我已经打包了。

您可以从罗盘中获取磁力数据,而不是制作磁力数据。 你要找的是音高,它在orientation[1] ,它在-pi / 2和pi / 2之间变化。

希望有所帮助。

在测量运动时,通常没有方向的概念。 测量静态加速度 (由重力引起的加速度)的多轴加速度计可用于计算相对于地球的角度。

大多数机器人手机都配有许多传感器,如陀螺仪等可以连接的传感器。 请参阅SensorManager的javadoc和各种类型的SensorEvent 。