Window and Viewport

1.在Windows程序设计时,面对屏幕的实际上存在3个坐标系,第一个是以整个屏幕建立坐标系,第二个是以窗口为坐标系,

   第三个是以客户区为坐标系,这三个坐标系都是以像素为基本单位,(0,0)点都分别在各个对象的左上角,x轴递增方向

   向右,y轴递增方向左。这是固定不变的,这些坐标统称为   设备坐标  。

 

2.如果只有设备坐标的话,这将对画图有点不方便,比如,我想画一个2厘米为边长的正方形。这需要多少个像素才是2厘米呢?

   这必然要经过取得设备的某些属性进行计算。为了解决以上问题出现了逻辑坐标。对于GDI函数,其表示坐标的参数基本是使

   用 逻辑坐标的。映射模式 是 决定 逻辑坐标到 设备坐标的转换,Windows为我们预置了几种与映射模式。例如,

   MM_LOMETRIC这将使GDI函数的坐标参数,以0.1毫米为基本单位,调用函数rectangle(0,0,200,200),就画出

   了一个2厘米的正方形。

 

3.3个设备坐标原点的位置的固定不动的,逻辑坐标的原点是可以移动的。

   以下说明一种特殊情况:

   当在取得设备内容,还没有释放时,使用了SetViewportOrgEx(hdc,x1,y1)函数----参数是设备坐标,这是就把逻辑坐标

   的原点映射到x1,y1位置,这时设备内容还没被释放哦,继续使用SetWindowOrgEx(hdc,x2,y2)-----参数是逻辑坐标

   (SetWindowOrgEx的功能是会把x2,y2映射到设备坐标的(0,0)点),但以上情况不一样啊,SetWindowOrgEx会以

    SetViewportOrgEx设置的点(x1,y1)代替(0,0)点,把逻辑坐标(x2,y2)映射到设备坐标(x1,y1)。设备坐标

   是不变的。

    一般情况下,只是用SetViewportOrgEx,SetWindowOrgEx中的一个就够了,用两个反而会混乱。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值