windows程序设计之绘图基础之GDI映射模式

Windows定义了8中映射模式,她们在WINGDI.H中定义的标识符如下:

映射模式 逻辑单位 X轴 Y轴
MM_TEXT 像素
MM_LOENGLISH 0.1mm
MM_HIMETRIC 0.01mm
MM_LOENGLISH 0.01in
MM_HIENGLISH 0.001in
MM_TWIPS 1/1440in
MM_ISOTROPIC 任意(x=y) 可选 可选
MM_ANISOTROPIC 任意(x!=y) 可选 可选
映射模式 视口范围(x,y) 窗口范围(x,y)
MM_LOMETRIC (96,96) (254,-254)
MM_HIMETRIC (96,96) (2540,-2540)
MM_LOENGLISH (96,96) (100,-100)
MM_HIENGLISH (96,96) (1000,-1000)
MM_TWIPS (96,96) (1440,-1440)

上面两个表格挺重要的。

映射模式可以由下面的函数设置

SetMapMode(hdc,iMapMode);

下面介绍几个重要的概念(截取自Windows程序设计第五版)

一、坐标系统

   在Windows应用程序中,有两种坐标系统:设备坐标和逻辑坐标。

   设备坐标系统直接与硬件设备的显示相关,以像素为度量单位。水平轴(X轴)的正方向从左向右,垂直轴(Y轴)的方向从上向下,并且整个坐标轴的单位和方向固定不变。

  逻辑坐标系统与设备描述表的属性映射模式相关,它是一种允许自定义的坐标系统,坐标轴方向、单位和原点位置都可以重新定义。cm,mm,in等为单位

  逻辑坐标系统下绘出的图形必须映射到设备坐标系统下,才能在屏幕上显示出来。

  自我理解:逻辑坐标系统是自己写程序时使用的系统坐标,是逻辑思维层面上的,设备坐标系统是显示器的显示坐标系统,是视觉层面上的。

二、窗口和视口

       窗口和视口是Windows GDI中两个很重要的概念,从逻辑坐标映射为设备坐标实际上就是从窗口到视口的映射。

       视口是基于设备坐标的,它以像素为单位,且有视口原点和视口范围两个基本属性。在使用客户区设备坐标时,视口与客户区相同,视口原点在默认情况下位于客户区的左上角,Y轴向下为正方向。可以更改视口原点的位置,也可以更改坐标轴的正方向。

      窗口是基于逻辑坐标的,窗口逻辑坐标的单位可以是像素、英寸等,还可以自定义。窗口也有窗口原点和窗口范围两个基本属性,窗口原点被映射到视口原点,窗口范围与视口范围的比值定义为映射的换算因子。

      窗口和视口就是两个不同坐标系统下对应的显示方式。逻辑坐标对应窗口,设备坐标对应设备坐标系统。

SetWindowOrgEx设置窗口原点,SetViewportOrgEx设置视口原点

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值