MFC中SetWorldTransform函式中XFORM結構體的使用
阿新 • • 發佈:2019-02-13
使用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度)的情況下成立。