首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

用GRAPH画图进行坐标转换后怎么取出鼠标所在点的对应坐标

2012-05-09 
用GRAPH画图进行坐标转换后如何取出鼠标所在点的对应坐标C# codeGrap.TranslateTransform(0, pictureBoxGr

用GRAPH画图进行坐标转换后如何取出鼠标所在点的对应坐标

C# code
Grap.TranslateTransform(0, pictureBoxGraph.Height - 1);                Grap.ScaleTransform(1, -1);-------------------------------             if (IsDrawing && e.Button == MouseButtons.Left && !IsImgMove)            {                //将数据点存储以便画线                _DrawLine.Add(new Point(e.X, e.Y));            }

虚线下的取的点是实际的点,怎么将它们转换为与坐标系对应的点!

[解决办法]
当A通过几何变换M来得到B。
要把B还原到A,可以用M的矩阵的达到。

这个M,最好预先计算,也可以如例子中用Graphics.Transform来获得。
C# code
{    Grap.TranslateTransform(0, pictureBoxGraph.Height - 1);    Grap.ScaleTransform(1, -1);    this.matrix = Grap.Transform;   // 得到转换矩阵    this.matrix.Inverse();          // 得到逆转换}System.Drawing.Drawing2D.Matrix matrix = new Matrix();void Form1_MouseDown(object sender, MouseEventArgs e){    Point[] points = {e.Location};    this.matrix.TransformPoints(points);  //<--    this.Text = points[0].ToString();}
[解决办法]
Matrix Transform
看这个,http://nonocast.cn/?p=2835

热点排行