我觉得不一定要使用RotateAt或者Scale,我猜你的目的是要变换m1,实现变换后M == m1 * m2 * m3还成立,看看这思路如何。肯定存在矩阵V,使得
m1*m2*m3+V=M.RotateAt(100,new PointF(100,100))假设矩阵V1满足下式
m1*m2*m3+V=(m1+V1)*m2*m3求解方程M.RotateAt(100,new PointF(100,100)-m1*m2*m3=V1*m2*m3。
这个等式可能没有解,如果没有解,就意味着你不可能通过仅仅改动m1来使M == m1 * m2 * m3依然成立。如果有解,m1=m1+V1,这时M=m1*m2*m3就依然成立。
第二个问题同样道理。