Я играю с «AccelerometerDemo» в SDK7.0 и задаю вопрос о вычислении «вращения», извлеченного из данных XYZ.Расчет акселерометра Blackberry
То, что я хочу достичь, - это виртуальный «маятник», который указывает прямо вниз. Однако вещь вращается вокруг и не двигается, как я ожидал бы этого.
Вот часть моего кода:
_accChannel.getLastAccelerationData(_xyz);
double roll = MathUtilities.atan2(X, Z) * 180.0/Math.PI;
graphics.setColor(Color.BLACK);
int xcenter = 240;
int ycenter = 400;
int length = 220;
int newx1 = (int)(Math.cos(roll) * (double)length) - xcenter;
int newy1 = (int)(Math.sin(roll) * (double)length) - ycenter;
graphics.drawLine(xcenter, ycenter, newx1, newy1);
Любые подсказки, что я делаю не так?
Заранее благодарен!
датчики, естественно, «шум» в показаниях. вы должны отфильтровать показания до приемлемого диапазона, чтобы подавить шум. –
Вы имеете в виду, что если «образец» для рулона более чем на 5 градусов, отбросить его? Таким образом, используются только показания, близкие к углу CURRENT? – user386093
зависит от того, что вы подразумеваете под «вращением вокруг». если он качается, как будто это было на ветру урагана, это означало бы, что вы читаете неправильно или считаете неправильным. если он находится в относительно одном месте, но «дрожит», то это сенсорный шум. –