MFC中SetWorldTransform函数中XFORM结构体的使用

使用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度)的情况下成立。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值