2015-10-05 73 views
0

我正試圖移植一些從Android到iOS的轉換。 具體來說,我嘗試做以下(在Android設備):iOS等效於這些轉換

matrix.reset(); 
matrix.postTranslate(xOffset,yOffset); 
matrix.postScale(scaleX, scaleY); 

基本上我試圖翻譯和規模。 iOS中這個代碼的等價物是什麼?我已經嘗試了以下內容:

CATransform3D scaleTransform = CATransform3DMakeScale(scaleX, scaleY,1); 
CATransform3D translateTransform = CATransform3DMakeTranslation(xOffset,yOffset,0); 
CATransform3D combined = CATransform3DConcat(scaleTransform, translateTransform) 

上面兩個不相等。任何指針來調試這將真的幫助。謝謝。

回答

0

在Android片段中,您的矩陣操作是Translate * Scale,但您的iOS片段使用Scale * Translate。

矩陣mulitplication是不可交換的,所以順序important.Try反轉乘法順序即代替:

CATransform3D combined = CATransform3DConcat(scaleTransform, translateTransform) 

使用:

CATransform3D combined = CATransform3DConcat(translateTransform, scaleTransform) 
+0

是塗布在層冪等相同的轉換? – chochim