3

1つの平面での電話の向きの角度を決定する方法は?

ここで、SensorManager を使用して作成します。

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

...

public void onSensorChanged(SensorEvent event) {
    xy_angle = event.values[0]; 
    xz_angle = event.values[1]; 
    zy_angle = event.values[2]; 

ここではさまざまな角度が得られますが、必要な角度は 1 つだけです。この角度は、青い線に沿って運転している間、電話の回転によって変化します。

どのように計算またはどのようにこの角度を取得しますか?

http://i.stack.imgur.com/kCElj.jpg

「My Paper Plane」のような傾斜制御に SensorManager.getOrientation を使用するにはどうすればよいですか? - 同様の質問がここにありますが、著者が問題を解決する方法がわかりません。

4

3 に答える 3

2

必要なのはSensorManager.getOrientation().

于 2012-05-01T12:51:18.810 に答える
0

その質問の作者は、パラメータの順序を切り替えることで問題を解決しました。

 if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                    m_lastMagFields, m_lastAccels)) {

に:

if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                m_lastAccels, m_lastMagFields)) {
于 2012-05-01T13:15:10.340 に答える