我正在开发一款使用智能手机控制桌面指针的应用。我在商店里看到了很多这种类型的应用,所以我知道这不可能!我这样做是为了大学,我不是在寻找完美的应用程序,但是我无法确定我应该使用哪种传感器...我试图使用旋转矢量传感器并且它是' s对于音高(指针的y值)有好处,但对于方位角(对于x轴)则不一样......我没有过滤值。您认为我必须更换传感器还是只是过滤数据?有小费吗?
编辑:阿里的视频中的陀螺鼠标非常流畅和准确,它说它很简单但不适合我!我采取旋转矩阵,获得角度变化,然后我将其映射到像素,但它非常不准确(方位角)!我会发布代码以清楚地显示我正在做的事情://get values from Rotation Vector sensor
SensorManager.getRotationMatrixFromVector(rotationMatrix, sensorValues);
SensorManager.getAngleChange(orientationValues, rotationMatrix, prevMatrix);
prevMatrix = rotationMatrix;
azimuth += orientationValues[0];
pitch += orientationValues[1];
//getAngleChange returns radians so I multiply by 100
float dX = (azimuth - lastX)*100.f;
float dY = (pitch - lastY)*100.f;
pixel.x += dX;
pixel.y += dY;
// store values
lastX = azimuth;
lastY = pitch;
prevMatrix = rotationMatrix;
答案 0 :(得分:2)
您正在寻找的内容最有可能是gyro mouse。基本上,您只需沿每个轴以角度累积更改。链接视频中也提供了代码段。
更新:是的,您需要传感器融合。不幸的是,我不熟悉Android API或Android传感器,因此我只能猜测。我会尝试SensorManager.getRotationMatrix()
来获取旋转矩阵,然后用SensorManager.getAngleChange()
确定角度的变化。然后你只需沿每个轴累积变化。