作为问题标题,我想在三轴x,y,z处使用加速器的变化值来测试该设备静止不动或正在移动。 我可以使用钛来获得3轴加速器的值:
Ti.Accelerometer.addEventListenter('update',function(e))
{
var x=e.x;
var y=e.y;
var z=e.z;
var timestamp=e.timestamp;
}
在实际设备中,这些值会不断变化。我想计算两次连续更新之间的变化。但我需要一些关于如何进行计算的指示。
答案 0 :(得分:0)
在addEventListener
中保留3 static
个变量或包含最后一个值的static
结构,并计算abs()
与它们之间的差异和当前值?< / p>
伪代码(只处理一个变量 - 扩展为三个):
int f( int x )
{
static int old_x = -1;
if( x != old_x )
{
// movement detected and do something
old_x = x;
}
else
{
// no movement
}
}
}
答案 1 :(得分:0)
如果需要,可以使用Ti.App.Properties变量来存储值。而不是你的伪代码的c ++样式静态变量,使用属性并在事件监听器的末尾更新它。
http://developer.appcelerator.com/apidoc/mobile/1.8.2/Titanium.App.Properties-module