相关疑难解决方法(0)

Android - 加速下降(粉碎)


视频解释为那些不理解的人


这个答案没有正确答案请尝试使用另一种解决方案(100 Bounty已过期)

同样的问题但更好地解释

这个问题被认为是正确的,但它完全没有,我用我的旧设备ZTE尝试了它并且大部分时间工作,但现在我有三星Galazy A5 2016并且它不起作用,在LG G3上都没有.

事情正在尝试使用Accelerometer,有些Sensors我必须能够检测到我在视频上制作的那两个动画中的任何一个.

有两个动作:

  • 粉碎它(以一点速度)
  • 自由落体

我让你来决定,并说服了我什么是更好的选择和EASIER一个做的,具有更好的我的意思是,在大多数设备的工作原理.

android accelerator sensor

25
推荐指数
1
解决办法
1705
查看次数

在android中正确计算真实标题

我的要求是像Google maps apps罗盘模式一样(点击时可以看到演示current location button twice):

  • 在此compass模式下,地图始终旋转一个角度,以便bluedot arrow始终指向顶部屏幕.

但我不知道如何计算正确的bearing距离azimuth, pitch, roll值.

public void onSensorChanged(SensorEvent sensorEvent) {
        switch (sensorEvent.sensor.getType()) {
            case Sensor.TYPE_ACCELEROMETER:
                System.arraycopy(sensorEvent.values, 0, mAccelerometers, 0, 3);
                break;
            case Sensor.TYPE_MAGNETIC_FIELD:
                System.arraycopy(sensorEvent.values, 0, mMagnetometers, 0, 3);
                break;
            default:
                break;
        }
        float[] rotationMatrix = new float[9];
        boolean success =
                    SensorManager.getRotationMatrix(rotationMatrix, null, mAccelerometers, mMagnetometers);
         if (success) {
             SensorManager.getOrientation(rotationMatrix, mOrientation);
             float azimuth = Math.toDegrees(mOrientation[0]);
             float pitch = Math.toDegrees(mOrientation[1]);
             float roll = Math.toDegrees(mOrientation[2]);
         } …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-sensors

12
推荐指数
1
解决办法
1600
查看次数

如何获得磁场矢量,与设备旋转无关?

我想要的是一种位置的"磁性指纹".我使用MAGNETIC_FIELD传感器,如果我得到(不幸的是没有进一步说明)X,Y和Z轴的3个值.

问题是,当我旋转设备时值会改变,所以我猜3轴是相对于设备的.什么我需要的是让我得到同样的3个值,而无论该设备是如何旋转补偿装置的旋转.

我试图乘以旋转矩阵(我知道如何得到它),试图乘以倾角矩阵等等,但没有任何效果.无论我尝试什么,旋转设备时值仍会改变.

那么有谁知道如何做对吗?最好使用代码,因为我读了很多像'那么你必须使用旋转矩阵补偿它',但没有找到一个具体的工作实例.

android android-sensors

11
推荐指数
1
解决办法
6825
查看次数

旋转Google-Map以显示我的实时方向

我正在使用Google Maps Android API v2,我在地图上将我的设备位置显示为GoogleMap Marker.我有一个监听器(LocationServices.FusedLocationApi.requestLocationUpdates ...)附加到Map,以处理每个GPS位置的变化.每当我收到一个新位置时,我都会更新Marker(我的位置)以及地图上的Camera,几乎就像我开车时一样.

但是......我需要一些帮助才能使MAP 旋转和/或显示在我要移动的方向上.我的意思是,当我开车时,我需要旋转MAP,我可以在地图左侧看到我在现实生活中的左侧,所以右侧也是如此.由于MAP方向是静态的,Marker(Me)正在移动它,但大多数时候方向与我的汽车实时方向不匹配.

我应该怎么做地图才能实现这种视觉效果?

android google-maps

11
推荐指数
1
解决办法
1万
查看次数

Android getOrientation Azimuth在手机倾斜时会受到污染

AR视图就像一个指南针,我有一个非常讨厌的问题.因此,当我以纵向握住手机(以便屏幕指向我的脸部)时,我remapCoordinateSystem会在按住它时将其调用为0.然后方位角(罗盘功能)是完美的,但是一旦我倾斜手机,方位角就会被毁坏,如果我向前弯曲,方位角会增加,如果我向后弯曲,它会减小.

我使用2个传感器来获取读数,Sensor.TYPE_MAGNETIC_FIELDSensor.TYPE_GRAVITY.

我使用的是一个非常基本的lowpassfilter,它是用alpha常量实现的,直接用于传感器的读取值.

这是我的代码:

float[] rotationMatrix = new float[9];
SensorManager.getRotationMatrix(rotationMatrix, null, gravitymeterValues,
    magnetometerValues);

float[] remappedRotationMatrix = new float[9];

SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_X,
    SensorManager.AXIS_Z, remappedRotationMatrix);

float results[] = new float[3];
SensorManager.getOrientation(remappedRotationMatrix, results);

float azimuth = (float) (results[0] * 180 / Math.PI);
if (azimuth < 0) {
    azimuth += 360;
}

float pitch = (float) (results[1] * 180 / Math.PI);
float roll = (float) (results[2] * 180 / Math.PI);
Run Code Online (Sandbox Code Playgroud)

如你所见,这里没有魔力.当gravitymeterValues和magnetometerValues准备好使用时,我称这段代码.

我的问题是当我倾斜手机时如何阻止方位角疯狂?

我在Google Play商店,Compass上查了一个免费的应用程序并且它还没有解决这个问题,但我希望有一个解决方案.

我有两个解决方案: …

math android augmented-reality compass-geolocation

9
推荐指数
1
解决办法
8899
查看次数