首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增强现实QualComm虚拟按钮

增强现实QualComm虚拟按钮
EN

Stack Overflow用户
提问于 2012-10-03 18:25:54
回答 1查看 474关注 0票数 1

我是一个新的安卓-ndk AR,所以需要一些帮助,我正在使用Virtaul按钮样本(从Vuforia)。

我可以将虚拟触摸转换为物理触摸吗

例如,如果我触摸屏幕上的红色按钮,那么茶壶就会变成红色

如果触摸蓝色按钮茶壶变成蓝色茶壶呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 17:00:37

我自己找出了一个复杂的计算,并使用以下公式来处理它

代码语言:javascript
复制
 QCAR::CameraDevice& cameraDevice = QCAR::CameraDevice::getInstance();
        const QCAR::CameraCalibration& cameraCalibration = cameraDevice.getCameraCalibration();
        /////////////////////////////////////////////////////////Tyre//////////////////////////////////////////
        QCAR::Vec2F cameraPoint = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -97.68, -15.93, 0.f ));
        QCAR::Vec2F cameraPoint1 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -28, -15.93, 0.f ));
        QCAR::Vec2F cameraPoint2 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -97.68, -50.52, 0.f));
        QCAR::Vec2F cameraPoint3 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -28.f, -50.52, 0.f));

        //////////////////////////////////////////////////HeadLight////////////////////////////////////////////////////////////
        QCAR::Vec2F cameraPoint4 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -52.28, 53, 0.f ));
        QCAR::Vec2F cameraPoint5 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -21.f, 53.f, 0.f ));
        QCAR::Vec2F cameraPoint6 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -53.f, -8.f, 0.f));
        QCAR::Vec2F cameraPoint7 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( -21.f, -8.f, 0.f));
        //////////////////////////////////////////////////////Indicator//////////////////////////////////////////////////////////////////////////////
        QCAR::Vec2F cameraPoint8 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F(-4.f, -94.f, 0.f ));
        QCAR::Vec2F cameraPoint9 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( 18, -94, 0.f ));
        QCAR::Vec2F cameraPoint10 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F(-4.f, -71.f, 0.f));
        QCAR::Vec2F cameraPoint11 = QCAR::Tool::projectPoint(cameraCalibration, trackable->getPose(), QCAR::Vec3F( 18.f, -71.f, 0.f));

        //////////////////////////////////////////////////////////////////////////////////////////////////////////////

        QCAR::Vec2F screenPoint=  cameraPointToScreenPoint(cameraPoint);
        QCAR::Vec2F screenPoint1=  cameraPointToScreenPoint(cameraPoint1);
        QCAR::Vec2F screenPoint2=  cameraPointToScreenPoint(cameraPoint2);
        QCAR::Vec2F screenPoint3=  cameraPointToScreenPoint(cameraPoint3);
        //////////////////////////////////////////////////////////////////
        QCAR::Vec2F screenPoint4=  cameraPointToScreenPoint(cameraPoint4);
        QCAR::Vec2F screenPoint5=  cameraPointToScreenPoint(cameraPoint5);
        QCAR::Vec2F screenPoint6=  cameraPointToScreenPoint(cameraPoint6);
        QCAR::Vec2F screenPoint7=  cameraPointToScreenPoint(cameraPoint7);
        //////////////////////////////////////////////////////////////////
        QCAR::Vec2F screenPoint8=  cameraPointToScreenPoint(cameraPoint8);
        QCAR::Vec2F screenPoint9=  cameraPointToScreenPoint(cameraPoint9);
        QCAR::Vec2F screenPoint10=  cameraPointToScreenPoint(cameraPoint10);
        QCAR::Vec2F screenPoint11=  cameraPointToScreenPoint(cameraPoint11);
        //////////////////////////////////////////////////////////////////
        blY_Tyre=screenPoint.data[0];
        blX_Tyre=screenPoint.data[1];
        brY_Tyre=screenPoint1.data[0];
        brX_Tyre=screenPoint1.data[1];
        tlY_Tyre=screenPoint2.data[0];
        tlX_Tyre=screenPoint2.data[1];
        trY_Tyre=screenPoint3.data[0];
        trX_Tyre=screenPoint3.data[1];
        //////////////////////////////
        blY_Lite=screenPoint4.data[0];
        blX_Lite=screenPoint4.data[1];
        brY_Lite=screenPoint5.data[0];
        brX_Lite=screenPoint5.data[1];
        tlY_Lite=screenPoint6.data[0];
        tlX_Lite=screenPoint6.data[1];
        trY_Lite=screenPoint7.data[0];
        trX_Lite=screenPoint7.data[1];
        //////////////////////////////
        blY_Miror=screenPoint8.data[0];
        blX_Miror=screenPoint8.data[1];
        brY_Miror=screenPoint9.data[0];
        brX_Miror=screenPoint9.data[1];
        tlY_Miror=screenPoint10.data[0];
        tlX_Miror=screenPoint10.data[1];
        trY_Miror=screenPoint11.data[0];
        trX_Miror=screenPoint11.data[1];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12706550

复制
相关文章

相似问题

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