首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAccelerometer距离计算

UIAccelerometer距离计算
EN

Stack Overflow用户
提问于 2012-09-12 20:20:48
回答 1查看 168关注 0票数 0

我已经使用以下代码来计算距离,当设备从一个地方移动到another.Is它正确与否,请看我的代码。

代码语言:javascript
复制
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    NSDate *now = [NSDate date];
    NSTimeInterval intervalDate = [now timeIntervalSinceDate:now_prev];

    sx = acceleration.x * kFilteringFactor + sx * (1.0 - kFilteringFactor);
    sy = acceleration.y * kFilteringFactor + sy * (1.0 - kFilteringFactor);
    sz = acceleration.z * kFilteringFactor + sz * (1.0 - kFilteringFactor);

    [xLabel setText:[NSString stringWithFormat:@"%.2f",sx]];
    [yLabel setText:[NSString stringWithFormat:@"%.2f",sy]];
    [zLabel setText:[NSString stringWithFormat:@"%.2f",sz]];

    float aValue = sqrtf(sx*sx+sy*sy+sz*sz);
    [gLabel setText:[NSString stringWithFormat:@"%.2f g",aValue]];

    velX += (sx * intervalDate);
    distX += (velX * intervalDate);

    velY += (sy * intervalDate);
    distY += (velY * intervalDate);

    velZ += (sz * intervalDate);
    distZ += (velZ * intervalDate);

    float distance = sqrtf(distX*distX+distY*distY+distZ*distZ);
    [distanceLabel setText:[NSString stringWithFormat:@"%.2f",distance*0.0006213f]];

    now_prev = [now retain];

}
EN

回答 1

Stack Overflow用户

发布于 2012-09-12 21:50:05

为什么试图从加速器数据中获取距离将是非常低效的,原因有很多。为了跟踪您的初始位置,您需要将所有加速度值连续集成到一个向量中,并且最好是以非常高的采样率(计算中的大间隙将导致不准确)。

这个方法本身并不是很难理解(或者谷歌);This question explains how to do the maths and pseudocode for such an integration approach

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12388056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档