O método getOrientation () do Android retorna resultados ruins
Estou criando o aplicativo 3D Compass.
estou a usargetOrientation método para obter orientação (quase a mesma implementação comoAqui). Se eu colocar o telefone na mesa, ele funciona bem, mas quando a parte superior do telefone aponta para o céu (menos o eixo Z na imagem; a esfera é a Terra) getOrientation começa a dar resultados realmente ruins. Fornece valores para o eixo Z entre 0 e 180 graus em alguns graus reais. Existe alguma maneira de suprimir esse comportamento? Eu criei umpequeno video o que descreve o problema (desculpe pela má qualidade). Desde já, obrigado.
Solução: Quando você gira modelo, há diferença entre:
<code>gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH </code>