如何使用矩阵变换鼠标坐标

本文关键字:鼠标 坐标 变换 何使用 | 更新日期: 2023-09-27 18:20:02

我可以使用此代码获取图像坐标。但我想通过使用矩阵来做同样的事情。

        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);

提前谢谢大家。

如何使用矩阵变换鼠标坐标

如果您传递矩阵类型实例,则可能需要使用Graphics.MultiplyTransform。

矩阵类型有一种应用信息的方法:

Matrix mx = new Matrix(); 

旋转

缩放

翻译

我建议按照这个顺序,不要先做平移,因为在这种情况下很容易混淆旋转中心和旋转轴。

当您可以学习如何使用矩阵转换坐标时,这是一个非常有用的资源。你需要操作:平移、旋转——它们也被很好地描述了。

http://msdn.microsoft.com/en-us/library/ms536397%28VS.85%29.aspx