如何使用矩阵变换鼠标坐标
本文关键字:鼠标 坐标 变换 何使用 | 更新日期: 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