希望任何人都可以帮助解决这个问题,甚至我的英语也很差。即时贴图可以说是在屏幕上带有经过转换的图形的正方形,并且可以正常工作,但是应该允许用户单击该正方形内的点,我需要知道该点,就好像正方形是在没有转变。我需要用其他词来了解用户单击了哪个正方形。希望有人明白我的意思。谢谢!

Maybee这有助于理解问题

Matrix m = new Matrix();
m.RotateAt(rot, new PointF(imgrect.Left + imgrect.Width / 2, imgrect.Top + imgrect.Height / 2));
Graphics.Transform = m;
Graphics.DrawImage(img, imgrect);

最佳答案

您需要将鼠标坐标带入矩形的对象空间

bool RotatedRectContains(Rectangle rect, Matrix transform, Point mousePos)
{
  Point[] pts = { mousePos };
  Matrix inverseMat = transform.Clone();
  inverseMat.Inverse();
  inverseMat.TransformPoints(pts);

  return rect.Contains(pts[0]);
}

关于c# - C#2DGraphics.Transform,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17295811/

10-13 06:47