2013-06-27 79 views
2

我可以使用此代碼獲得圖像座標。但我想通過使用Matrix來做同樣的操作。如何使用矩陣變換鼠標座標?

 private int _angle = 90; 
     float scaleFactorX = (float)resizeWidth/(float)originalWidth; 
     float scaleFactorY = (float)resizeHeight/(float)originalHeight; 

     graphics.TranslateTransform((float)(width/2), (float)(height/2)); 
     graphics.ScaleTransform(scaleFactorX, scaleFactorY); 
     graphics.RotateTransform(_angle); 
     graphics.TranslateTransform(-(float)originalWidth/2, -(float)originalHeight /2); 
     graphics.TransformPoints(System.Drawing.Drawing2D.CoordinateSpace.World, System.Drawing.Drawing2D.CoordinateSpace.Device, point); 

謝謝大家提前。

回答

1

您可能想要使用Graphics.MultiplyTransform當您通過Matrix類型的實例。

矩陣式有aplying穿越 - 一個方法吧:

Matrix mx = new Matrix(); 

Rotate

Scale

Translate

我會建議遵循這一順序,而不是使譯文首先,因爲在這些情況下很容易被弄亂旋轉中心和旋轉軸。

+0

@Shikha:anda fter將結果矩陣應用於圖形對象本身 – Tigran