【win32】MM_ISOTROPIC映射模式注意几点

来源:互联网 发布:操作系统linux移植 编辑:程序博客网 时间:2024/06/06 19:43

1.MM_ISOTROPIC是保证了视口与窗口之间x,y轴同比例.
例如:xViewExt是视口水平范围,yViewExt是视口垂直范围,
xWinExt是窗口水平范围,yWinExt是窗口垂直范围,那么在MM_ISOTROPIC模式到:
xWinExt/xViewExt与yWinExt/yViewExt比值总是一样的,

2.当调用了SetWindowExt(),SetViewportExt()方法时,逻辑视图的坐标轴方向、单位,比例就确定了。
MM_ISOTROPIC在默认情况下原点位于左上角,并且x轴向右正,向左为负,y轴向上负,向下为正.

3.在调用了SetWindowExt(),SetViewportExt()方法之后,实际逻辑视图的坐标轴的方向是这样的:
x轴方向是这两个方法中:
当第一个参数同号时,就为默认的方向,当第一个参数异号时,就为默认的反方向。
y轴方向是这一两个方法中:
当第二个参数同号时,就为默认方向,当第二个参数异号时,就为默认的反方向。

4.在调用了SetViewportOrg(),SetWindowsOrg()方法后,逻辑视图的原点就确定下来。
作为SetViewportOrg()方法,它以MM_TEXT确定的坐标系为基准,将视口原点向右(当x为正时),向左(当x为负时);向上(当y为负),向下(当y为正)。(这个参数x和y的单位还是以像素为单位。)
作为SetWindowOrg()方法,它以SetWindowExt(),SetViewportExt()方法确定的坐标轴方向为基准,当x为正时,往负方向移动原点,为x为负时,往正向移动原点,当y为负时,往正方向移动原点,当y为正时,往负方向移动原点。(这个参数x和y是以视口/窗口为单位。)
那么,实际逻辑视图原点的位置是就是这两个方法效果的累加

5.一旦发生,x,y轴不等比例缩放时,作为比值(窗口范围/视口范围),实际的比值取x,y轴比例较大的那一个。

原创粉丝点击