歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中Matrix的set、pre、post的區別

說set、pre、post的區別之前,先說說Matrix。

Matrix包含一個3 X 3的矩陣,專門用於圖像變換匹配。

Matrix提供了四種操作:

  • translate(平移)
  • rotate(旋轉)
  • scale(縮放)
  • skew(傾斜)

也就是說這4種操作都是對這個3 X 3的矩陣設值來達到變換的效果。

Matrix沒有結構體,它必須被初始化,通過reset或set方法。

OK,Matrix介紹完了,我們來看看set、pre、post的區別。

pre是在隊列最前面插入,post是在隊列最後面追加,而set先清空隊列在添加(這也是上文提到的“Matrix沒有結構體,它必須被初始化,通過reset或set方法”的原因)。

下面通過一些例子具體說明:

  1. matrix.preScale(2f,1f);    
  2. matrix.preTranslate(5f, 0f);   
  3. matrix.postScale(0.2f, 1f);    
  4. matrix.postTranslate(0.5f, 0f);  
執行順序:translate(5, 0) -> scale(2f, 1f) -> scale(0.2f, 1f) -> translate(0.5f, 0f)
  1. matrix.postTranslate(2f, 0f);   
  2. matrix.preScale(0.2f, 1f);     
  3. matrix.setScale(1f, 1f);   
  4. matrix.postScale(5f, 1f);   
  5. matrix.preTranslate(0.5f, 0f);   

執行順序:translate(0.5f, 0f) -> scale(1f, 1f) ->  scale(5f, 1)

Copyright © Linux教程網 All Rights Reserved