我有一张带有跟踪器和矩形的纸,用户可以在其中用铅笔在现实生活中画一条黑线。在我的程序中,我从平面获得了一个位图,其中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/