首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能知道加速度计的方向?

我怎样才能知道加速度计的方向?
EN

Stack Overflow用户
提问于 2009-05-15 10:51:55
回答 3查看 3K关注 0票数 1

我在accelerometer.Its上做了一个声音应用程序,通过计算加速度计来播放不同的运动声音,我怎样才能找到用户移动的加速度计方向,x轴加或减,y轴加或minus.How,我能在加速度计上找到这个值。

请提供一些说明或帮助代码或项目。

EN

回答 3

Stack Overflow用户

发布于 2009-05-15 10:55:33

您需要执行vector addition并计算2个向量的总和,以获得结果向量。上面的文章解释了计算它的所有常用方法。但是在编程中,你只需要应用Pythagoras定理和Tan theta = b/a

票数 1
EN

Stack Overflow用户

发布于 2009-08-01 16:41:30

我认为你需要磁力仪的方向(至少给你一个方向,你总是可以比较),以及使用上面提到的矢量数学。这篇文章更好地解释了如何添加向量(第一个用来掩盖最可能的情况,只是说它很“难”)……

http://blog.dotphys.net/2008/09/basics-vectors-and-vector-addition/

票数 1
EN

Stack Overflow用户

发布于 2009-08-01 17:24:53

你必须使用向量来表示它,下面有一个委托方法,它详细说明了你需要做什么。

现在我还没有看太多的API,但我相信你的方向矢量是从加速度计返回给你的。

有一个委托方法,它返回您需要的值。下面的代码可能会对你应该使用take a look at here的教程有所帮助

代码语言:javascript
复制
- (void)acceleratedInX:(float)xx Y:(float)yy Z:(float)zz
{
    // Create Status feedback string
    NSString *xstring = [NSString stringWithFormat:
    @"X (roll, %4.1f%%): %f\nY (pitch %4.1f%%): %f\nZ (%4.1f%%) : %f",
    100.0 - (xx + 1.0) * 100.0, xx,
    100.0 - (yy + 1.0) * 100.0, yy,
    100.0 - (zz + 1.0) * 100.0, zz
    ];
    self.textView.text = xstring;

    // Revert Arrow and then rotate to new coords
    float angle = atan2(xx, yy);
    angle += M_PI / 2.0;

    CGAffineTransform affineTransform = CGAffineTransformIdentity;
    affineTransform = CGAffineTransformConcat( affineTransform,       CGAffineTransformMakeRotation(angle));
    self.xarrow.transform = affineTransform;
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    [self acceleratedInX:acceleration.x Y:acceleration.y Z:acceleration.z];
}

还有一篇易于阅读的文章清楚地解释了这一点here along with sample code

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

https://stackoverflow.com/questions/868012

复制
相关文章

相似问题

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