歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中Matrix的set、pre、post的區別

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

日期:2017/3/1 10:18:37   编辑:Linux編程

說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