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

使用LINEAR_ACCELERATION计算距离
EN

Stack Overflow用户
提问于 2014-12-13 09:50:12
回答 1查看 144关注 0票数 0

我正在使用谷歌Nexus 4,并试图编写一个在PC上控制鼠标光标的应用程序。更具体地说,当我将手机向右移动时,鼠标光标也应该向右移动。

我现在只在x轴上工作,并遵循this answerthe document的说明。

但是我不能得到我想要的结果。当我将手机移到右边时,光标就会移到右边,它又会移回左边。下面是我的代码的一部分:

代码语言:javascript
复制
@Override
public void onSensorChanged(SensorEvent event) 
{
    // sampling acceleration 
    do 
    {
        acceleration_x[1] = acceleration_x[1] + (int) event.values[0];
        count_x++;

    } while ( count_x < 64);

    acceleration_x[1] = acceleration_x[1] >> 6;

    count_x = 0;

    //Mechanical Filtering
    if( (acceleration_x[1] <= 3) && (acceleration_x[1] >= -3) )
        acceleration_x[1] = 0;


    // first integration
    velocity_x[1] = velocity_x[0] + acceleration_x[0] + 
            ((acceleration_x[1] - acceleration_x[0]) >> 1);

    // second integration
    position_x[1] = position_x[0] + velocity_x[0] +
            ((velocity_x[1] - velocity_x[0]) >> 1);

    acceleration_x[0] = acceleration_x[1];
    velocity_x[0] = velocity_x[1];


    sendData.sendPacket(position_x[1], 0); // sending data(x,y) to PC

    movement_end_check(event);

    position_x[0] = position_x[1];

}

积分公式和movement_end_check方法取自文献。

那么,你能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-13 10:14:52

你永远不会增加你的速度/加速度列表中的位置。它总是写到1。这不是它的工作方式-想想看,如果总是写到1是答案,为什么要有一个数组呢?

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

https://stackoverflow.com/questions/27454706

复制
相关文章

相似问题

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