2012-11-08 121 views
1

如果我用這個:可能計算旋轉矩陣的寬度/高度?

mCamera.rotateY(45); 
mCamera.getMatrix(mMatrix); 
mMatrix.preTranslate(-pivotX, -pivotY); 
mMatrix.postTranslate(pivotX + centerX, pivotY + centerY); 

,做:

canvas.drawBitmap(bitmap, mMatrix, null); 

然後描繪的圖畫會更高,更薄和矩陣將被很好地應用到整個畫面。現在,有什麼方法來計算旋轉的大小?我想通過縮放來適應圖像,現在當我旋轉它時,由於父級的約束,部分頂部和底部會被裁剪。謝謝!

編輯:

我所要做的是旋轉的圖像和旋轉Y的範圍將是從0到90

回答

1

那麼,你可以很容易地讓矩陣映射你的位圖的角落,然後計算邊界,因爲映射的角將是x和y座標的最大/最小值。也許你可以做到這一點,沒有太多if條款:)

編輯: 退房

RectF r = new RectF(/*your bitmap's corners*/); 
matrix.mapRect(r); 

這樣,你應該得到r的新的大小。

+0

太棒了,謝謝!有用 :) –

0

如果你堅持到45°,然後畢達哥拉斯是關鍵

+0

偉大的將嘗試,但你會看到我打算旋轉,所以範圍將從0到90.有什麼建議使用什麼公式? –

+0

@NikkyD:這可能是一個確切的目的,但嘗試編碼重用的好方法。 – Bondax