我已經在Android項目,利用加速計值的在努力。安卓:從手機的轉換輸出加速度計座標變換成世界座標系
但是加速度計的輸出在手機的座標系來定義的。但我需要他們的世界座標系中,,
沒有任何身體知道轉換acceleometer的輸出值是在世界座標中的方法?
問候,
穆斯塔法
我已經在Android項目,利用加速計值的在努力。安卓:從手機的轉換輸出加速度計座標變換成世界座標系
但是加速度計的輸出在手機的座標系來定義的。但我需要他們的世界座標系中,,
沒有任何身體知道轉換acceleometer的輸出值是在世界座標中的方法?
問候,
穆斯塔法
如果你指的是X,Y,Z座標,不能你只是乘以-1呢? 這是我做了什麼,當我第一次開始與加速度計亂搞:
進口android.app.Activity; import android.hardware.Sensor; 進口android.hardware.SensorEvent; 進口android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.TextView;
公共類加速度傳感器延伸活動{
SensorManager sensorManager;
Sensor accelerometer;
TextView textView;
private SensorEventListener sensorEventListener = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
update(x, y, z);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
textView = new TextView(this);
setContentView(textView);
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
public void update(float x, float y, float z) {
textView.setText("x: " + x + " y: " + y + " z: " + z);
}
protected void onResume() {
super.onResume();
sensorManager.registerListener(sensorEventListener, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(sensorEventListener);
}
}
http://developer.android.com/reference/android/hardware/SensorEvent.html#values因爲這裏說的價值觀 - 加速度,沒有座標的數組..
你能中心聯繫我,現在,我試圖獲得電話的協調(不是全球性的,而是本地的)並且不確定我的東西的工作是否正確。
的想法是,你會得到配置(有點校準)手機的世界COORDS然後應用手機的座標轉換成新的系統
不,我的意思是我要加速轉化爲世界座標的X,Y,Z ,無論手機的配置如何,重力的所有效果都始終在Z軸上 – 2011-01-08 01:18:26