2012-01-19 28 views
2

我對ARToolKitPlus的iPhone端口VRToolkit有個小問題。我不需要框架的3D內容,只需要檢測到的標記的信息。到目前爲止一切正常,我堅持在每一幀實時生成的標記頂點座標。在ARTookitPlus/VRToolKit中使用標記頂點繪製CGRect

我想通過在邊緣繪製一個簡單的CGRect來顯示檢測到的標記。我得到的標記的頂點在「TrackerSingleMarkerImpl.cxx」,我主要是使用某種這段代碼:

vertexArray[0] = marker_info[k].vertex[0][0]; 
vertexArray[1] = marker_info[k].vertex[0][1]; 
vertexArray[2] = marker_info[k].vertex[1][0]; 
vertexArray[3] = marker_info[k].vertex[1][1]; 
vertexArray[4] = marker_info[k].vertex[2][0]; 
vertexArray[5] = marker_info[k].vertex[2][1]; 
vertexArray[6] = marker_info[k].vertex[3][0]; 
vertexArray[7] = marker_info[k].vertex[3][1]; 

的是的CGRect成功拉制但問題是,它完全鏡像。因此,水平和垂直軸鏡像 - 當我換X和Y,只有垂直軸保持鏡像這看起來是這樣的:

http://i1218.photobucket.com/albums/dd416/vyrb1/artoolkit_marker_failure.png

你有任何想法可能是什麼問題就在這裏?我不需要一個確切的問題,而是一個粗略的問題出現的方向。我試圖調整像'arGetTransMat.cxx'這樣的文件,但我不確定問題是否出現在生成的頂點座標中 - 3D模型在標記上的投影效果很好,但這是3D空間。我沒有使用OpenGL ES(EAGLView)中使用的投影矩陣,因爲我只需要2D和CGRect。

我希望你能幫上忙。提前致謝。

回答

0

這已經有一段時間,因爲我用的ARToolKit,而且當時我懶洋洋地使用他們的OpenGL函數,但我認爲你有一個基於標記的方向來確定你的角落頂點(dirmarker_info場)

我做了一個快速的谷歌搜索「ARToolKit marker_info頂點角落」,發現這似乎支持我的預感。

// read in the detected corners from the marker info (easier to work with) 
for (int i = 0; i < 4; i++) { 
    corners_ar[2*i] = corners[i][0] = marker_info[best].vertex[(4+i-dir)%4][0]; 
    corners_ar[2*i+1] = corners[i][1] = marker_info[best].vertex[(4+i-dir)%4][1]; 
} 
+0

謝謝,這是這樣的:)我不得不減去相機視圖的高度,但方向是最後的提示。非常感謝! – Martin