- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经为 Rotation Vector 和 Orientation Vector 实现了监听器,虽然我知道它已经过时了,但我想同时测试这两个。
我知道 Rotation Vector 是一个融合传感器并被推荐,但根据它,NORTH(getOrientation(rotationMatrix,value) geaving bearing 0 返回的值[0])与 NORTH 不匹配来自方向传感器。我还从 Playstore 的不同应用程序中进行了统计,方向传感器值似乎更接近它们。
而且很多次我从 Rotation_Vector 得到的方位角值 [0] 然后 getOrientation 只是猛增并保持在 -180 到 180 之间振荡
P.S “getRotationMatrix(float[] R, float[] I, float[] gravity, float[] geomagnetic)”也给出与旋转矢量相同的结果。
public final void onSensorChanged(SensorEvent event)
{
float rotationMatrix[];
switch(event.sensor.getType())
{
.
.
.
case Sensor.TYPE_ROTATION_VECTOR:
rotationMatrix=new float[16];
mSensorManager.getRotationMatrixFromVector(rotationMatrix,event.values);
determineOrientation(rotationMatrix);
break;
case Sensor.TYPE_ORIENTATION:
sensorZValue.setText(""+event.values[0]); //rotation about geographical z axis
sensorXValue.setText(""+event.values[1]); //rotation about geographical x axis
sensorYValue.setText(""+event.values[2]); //rotation about geographical y axis
}//switch case ends
}
private void determineOrientation(float[] rotationMatrix)
{
float[] orientationValues = new float[3];
SensorManager.getOrientation(rotationMatrix, orientationValues);
double azimuth = Math.toDegrees(orientationValues[0]);
double pitch = Math.toDegrees(orientationValues[1]);
double roll = Math.toDegrees(orientationValues[2]);
sensorZValue.setText(String.valueOf(azimuth)); //rotation about geographical z axis
sensorXValue.setText(String.valueOf(pitch)); //rotation about geographical x axis
sensorYValue.setText(String.valueOf(roll)); //rotation about geographical y axis
}
我想确定手机的 Y 轴和指向北方的向量之间的角度,所以这是我最初的实现。请提出建议。
最佳答案
关于android - TYPE_ROTATION_VECTOR, TYPE_ORIENTATION 给出不同的结果,也有偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603873/
我制作了一个使用 TYPE_ROTATION_VECTOR 获取手机方向的程序。该程序适用于某些三星 galaxy s 手机,但不适用于 sony xperia neo v。所有手机都有 api >=
我在我的应用中使用了 ROTATION_VECTOR 类型的传感器数据。 使用我的 Nexus 5,我可以从方向 [0] 获得方位角,并且可以获得下图所示范围内的手机航向(非常准确)。 由于我在不同的
我是 Android Studio 的新手,不明白为什么 onSensorChanged() 方法不给出错误和警告,而是返回零。我想“在设备屏幕上滚动球”。图形组件运行良好。我看到一个运动速度恒定的球
在 Android 设备上似乎有很多获取当前主方向的旧示例,但 Google 提供的官方解决方案似乎没有出现在他们的文档中。 最古老的引用资料 Sensor.TYPE_ORIENTATION 已被弃用
我正在为 Honeycomb Gingerbread 开发,我想知道,当我使用 Sensor.TYPE_ROTATION_VECTOR 时,使用了哪些物理传感器? 它是否结合使用了指南针和加速度计?还
我目前在读取 Android 旋转矢量的值时遇到一些问题。正如 Android 文档所解释的那样,旋转矢量是陀螺仪、磁力计和加速度计的传感器融合组合。当设备平放时,旋转矢量的引用坐标系为X朝东,Y朝北
当我在我的设备上调用 SensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) 时,它返回 null。我知道这是一个虚拟传感器(做一些巧妙
我在 x 方向(从 -180 度到 180 度)旋转了我的 android 设备,请参见下图。 我假设只有旋转向量 x 值发生了变化。 Y 和 z 可能有一些噪音,但应该相差不大。 但是,我收到了这个
我已经为 Rotation Vector 和 Orientation Vector 实现了监听器,虽然我知道它已经过时了,但我想同时测试这两个。 我知道 Rotation Vector 是一个融合传感
我正在 Android 上试用 Sensor.TYPE_ROTATION_VECTOR。它应该使用磁场传感器、加速度计和陀螺仪来始终提供准确的旋转。但是,我注意到 Moto G 2nd 发生了巨大的漂
我正在创建一个全景 View ,它允许用户通过旋转他的智能手机在球形图像中环顾四周。为此,我将 Rajawali 的天空盒与 TYPE_ROTATION_VECTOR 传感器一起使用。 我让它工作了,
我有一部 Yureka 手机,还有 from its specs我可以看到它至少有一个加速度计和一个陀螺仪。 我从网上查到的是TYPE_ROTATION_VECTOR需要加速度计、陀螺仪和磁力计。由于
我正在开发一个根据手机的实际位置驾驶遥控车的应用程序。 因为 TYPE_ORIENTATION 已被 Android 弃用(有人知道为什么它被弃用了吗?)我正在使用(Magnetic_Field 和加
我是一名优秀的程序员,十分优秀!