GDI+缩放问题

-汪帆- 2010-02-25 11:08:27
我用GDI+在Form上画了一个圆,通过判定点是否在园内来用鼠标选取它。
然后我用graphics.ScaleTransform(scale, scale);将图像按照scale这个比例进行缩放后,鼠标就无法选中圆了。
用ScaleTransform进行缩放后,坐标系是否发生了偏移?
鼠标点要如何偏移才能选中圆?
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
criedshy 2010-02-25
  • 打赏
  • 举报
回复
缩放后,鼠标位置也要跟着比例缩放,这个你可以自己计算一下
MOmo400 2010-02-25
  • 打赏
  • 举报
回复
画的时候

Matrix mx = new Matrix();
mx.Scale(_zoom, _zoom, MatrixOrder.Append);
e.Graphics.Transform = mx;


用鼠标去选择的时候要把坐标进行计算


public Point PointToMouse(Point p)
{
// Backtrack the mouse...
Point[] pts = new Point[] { p };
Matrix mx = new Matrix();
mx.Scale(_zoom, _zoom, MatrixOrder.Append);
mx.Invert();
mx.TransformPoints(pts);
return pts[0];
}
-汪帆- 2010-02-25
  • 打赏
  • 举报
回复
引用 1 楼 momo400 的回复:
坐标系同样做缩放才可以选到

坐标系怎么缩放呢??
bigmingming 2010-02-25
  • 打赏
  • 举报
回复
http://tech.ddvip.com/zt/gdi.html
bigmingming 2010-02-25
  • 打赏
  • 举报
回复
MOmo400 2010-02-25
  • 打赏
  • 举报
回复
坐标系同样做缩放才可以选到

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧