[問題] artoolkit抓取marker旋轉角度

看板C_and_CPP作者 (飛雞)時間14年前 (2011/11/25 16:10), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Win7, vs2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL 問題(Question): 小弟目前正在研究artoolkit 搜尋到youtube上的影片:http://www.youtube.com/watch?v=zOoRyB-HVBo
大概在10秒左右開始 他可以抓取marker旋轉的角度 我想請問版上的高手們這是如何做到的? 我原本有想說 把marker中心當作原點,另外取一點連成一線 marker旋轉時,取另外一點跟原點連線,之後兩直線求夾角 但是我研究了很久,怎麼弄也弄不出來不出來 QQ [已解決]另外,他是怎麼讓marker旋轉,上面顯示的東西卻不會跟著一起轉? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.193.20

11/25 22:35, , 1F
只取平移不取旋轉 丟給OpenGL畫即可
11/25 22:35, 1F
不好意思,我有點不太明白 下面這個function是用來畫marker要顯示的東西用的 請問哪邊是跟旋轉有關的? static void draw( double trans[3][4] ) { double gl_para[16]; argDrawMode3D(); argDraw3dCamera( 0, 0 ); glClearDepth( 1.0 ); glClear( GL_DEPTH_BUFFER_BIT ); glEnable( GL_DEPTH_TEST ); glDepthFunc( GL_LEQUAL ); /* load the camera transformation matrix */ argConvGlpara( trans, gl_para ); glMatrixMode( GL_MODELVIEW ); glLoadMatrixd( gl_para ); glBegin( GL_QUADS ); glVertex3f(-10.0f, 10.0f, 0.0f); glVertex3f( 10.0f, 10.0f, 0.0f); glVertex3f( 10.0f,-100.0f, 0.0f); glVertex3f(-10.0f,-100.0f, 0.0f); glEnd(); glDisable( GL_DEPTH_TEST ); } // draw()

11/25 23:36, , 2F
trans應該是一個3x4的旋轉平移矩陣
11/25 23:36, 2F

11/25 23:36, , 3F
把旋轉矩陣部分設為單位矩陣 平移不變即可
11/25 23:36, 3F

11/25 23:38, , 4F
去改gl_para也是可以
11/25 23:38, 4F
非常感謝,這個部份我已經了解了,也成功實作出來了 :) 現在就差角度問題了 :( ※ 編輯: kudos131313 來自: 114.32.193.20 (11/26 00:30)
文章代碼(AID): #1EpqrjNT (C_and_CPP)