Android的Camera和Matrix

camera的座標系是左手座標系。伸出左手,讓拇指和食指成L形,大拇指向右,食指向上,中指指向前方,這樣我們就建立了一個左手座標系,拇指,食指,中指的指向分別代表了x,y,z軸的正方向。如下圖所示:


下面是一些細節點:

1,camera位於座標點(0,0),也就是視圖的左上角;

2,camera.translate(10, 20, 30)的意思是把觀察物體右移10,上移20,向前移30(即讓物體遠離camera,這樣物體將會變小);
3,camera.rotateX(45)的意思是繞x軸順時針旋轉45度。舉例來說,如果物體中間線和x軸重合的話,繞x軸順時針旋轉45度就是指物體上半部分向裏翻轉,下半部分向外翻轉;
4,camera.rotateY(45)的意思是繞y軸順時針旋轉45度。舉例來說,如果物體中間線和y軸重合的話,繞y軸順時針旋轉45度就是指物體右半部分向裏翻轉,左半部分向外翻轉;
5,camera.rotateZ(45)的意思是繞z軸順時針旋轉45度。舉例來說,如果物體中間線和z軸重合的話,繞z軸順時針旋轉45度就是指物體上半部分向左翻轉,下半部分向右翻轉;

------------------------------------------------------------------------------------------------

       Matrix是一個3 x 3的2D空間矩陣,關於其具體請參見博文Android Matrix理論與應用詳解,這裏補充說明一點:

1,下圖中的MPERSP_2指的是投影變換

 關於投影變換理論部分請參見博文OpenGL筆記之矩陣變換(Matrix Transformation),其實際作用就是如果MPERSP_2=0.5,那麼物體是原來的4倍大小;如果MPERSP_2=2,那麼物體是原來的1/4大小。

------------------------------------------------------------------------------------------------

      Camera和Matrix的聯合使用:一般情況下,如果我們需要進行3D變換,那麼需要將Camera和Matrix聯合使用,使用Camera進行x軸或y軸的旋轉,使用Matrix進行平移或放大。



------------------------------------------------------------------------------------------------

【注】:該文章系轉載,原文:http://blog.csdn.net/imyfriend/article/details/8045973

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章