我正在制作一个“地理AR应用程序”,我在其中使用Paint()在我的屏幕上绘制位图,使用传感器进行一些翻译,以便我的图像只显示在特定点。 我做了一切
然而,当我呈现时,图像会抖动。
我真的想要效果,如下面的视频介绍
https://www.youtube.com/watch?v=8U3vWETmk2U
我已经实现了低通滤波器来缓解这种情况,但它仍然不如视频中的图像稳定。
这就是我实现AR运动的方式
float dx = (float) ( (canvas.getWidth()/ horizontalFOV) * (Math.toDegrees(orientation[0])-curBearingTo));
float dy = (float) ( (canvas.getHeight()/ verticalFOV) * Math.toDegrees(orientation[1]));
canvas.translate(0.0f, 0.0f-dy);
canvas.translate(0.0f-dx, 0.0f);
curBearingTois是android位置API的结果:BearingTo(location,destination)
这就是我如何获得Orientation矩阵
if (lastAccelerometer != null && lastCompass != null) {
boolean gotRotation = SensorManager.getRotationMatrix(rotation,
identity, lastAccelerometer, lastCompass);
if (gotRotation) {
// remap such that the camera is pointing straight down the Y
// axis
SensorManager.remapCoordinateSystem(rotation,
SensorManager.AXIS_X, SensorManager.AXIS_Z,
cameraRotation);
// orientation vector
SensorManager.getOrientation(cameraRotation, orientation);
}
有什么建议吗?