我有一张带有跟踪器和矩形的纸,用户可以在其中用铅笔在现实生活中画一条黑线。在我的程序中,我从平面获得了一个位图,其中true为黑色,false为白色,因此我可以使用该位图在直线上放一个球。

这是问题所在,当搜索黑色像素时,我获得了位图的正确线,但是当通过metaio放置球时,球不在正确的位置,它不在直线上,而是在上面。

for(column = 0; column < width && !stop; column++)
    {
        for(row = 0; row < height && !stop; row++)
        {
            if (bitmap[row][column])
                stop = true;
        }
    }

    if (stop)
    {
        m_geometry->setTranslation(metaio::Vector3d(-m_x,-m_y,0));
        m_y = (0 - 160 - column);
        m_x = row;
        m_geometry->setTranslation(metaio::Vector3d(m_x,m_y,0));
        cout << m_geometry->getTranslation().x << " " << m_geometry->getTranslation().y << " "<< m_geometry->getTranslation().z << endl;
    }


有人可以帮我弄这个吗?我把情况画在了油漆上,所以你有了一个主意。

http://img195.imageshack.us/img195/4945/naamlooszw.png(绘制一个三角形而不是一个球很抱歉)

亲切的问候,

最佳答案

您可以使用get3dPositionFromScreenCoordinates查找3d坐标w.r.t.目标平面,并使用返回的值平移您的几何形状(即球)。

请在metaio HelpDesk上发布这样的问题,以获得更好的响应。

关于c++ - 在线增强现实球(metaio SDK),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14068838/

10-13 08:10