C#画图练习,在画布中可以放入小图片,小图片可以旋转,画布可以放大缩小。
问题是这样的,画布放大后,再旋转图片,发现图片不在原来的位置了。
画布移动、缩放代码:
private void DrawArea_Paint(object sender, PaintEventArgs e){
Matrix mx = new Matrix();
mx.Translate(_panX,_panY, MatrixOrder.Append);
mx.Scale(_zoom, _zoom, MatrixOrder.Append);
e.Graphics.Transform = mx;

图片的draw方法:
public override void Draw(Graphics g)
{
Matrix mSave = g.Transform;
if (this.ROTATION != 0)
            { 
                //关于旋转 此处以某点旋转
                //会出现绘制的图片偏离的问题。
                Matrix m = mSave.Clone();            
                m.RotateAt((float)ROTATION, new PointF(rectangle.Left + (rectangle.Width / 2), rectangle.Top + (rectangle.Height / 2)), MatrixOrder.Append);
                g.Transform = m;
}
       g.DrawImage(_image, new Point(rectangle.X, rectangle.Y));
       g.Transform = mSave;
}是坐标点变换的问题吗?旋转图片后,再放大整个画布,不会有问题。放大后,再旋转就有问题。
求助大佬。。