使用XFORM来控制DC时,需要先设置绘图模式SetGraphicsMode为GM_ADVANCED,再用SetWorldTransform。
否则SetWorldTransform函数会失败
映射后的坐标与映射前的坐标关系为
x' = x * eM11 + y * eM21 + eDx,
y' = x * eM12 + y * eM22 + eDy,
若要设置缩放比例,则只需设置eM11和eM22为相应的比例,其余设置为0即可;
若要设置一个逆时针旋转了@度的坐标系映射,则eM11为cos(@), eM12为-sin(@), eM21 为 sin(@), eM22为cos(@)
若要使坐标系平移(a,b),则eDx=a, eDy = b。
若要设置一个缩放比例为0.5,逆时针旋转30度,平移(20,50)的坐标系,则eM11 = 0.5 * cos(30) = 0.4330, eM12 = 0.5 * [- sin( 30 )] = -0.25, eM21 = 0.5 * sin ( 30 ) = 0.25, eM22 = 0.5 * cos( 30 ) = 0.4330, eDx = 20, eDy = 50
注:以上关系只在不改变和原屏幕坐标一样的XY轴关系(X轴正方向为Y轴正方向逆时针旋转90度)的情况下成立。