关于GDI绘图的新手说明

许多Windows编程书籍都谈到了关于这方面的内容,然而有些地方属于误导,有些则重点没有突出,使读者自己产生误解.我也在这上面吃过苦头.下面是我的个人简单总结:

1.窗口和视口

  窗口:虚拟存在的一个屏幕,之所以引入这个概念,是Windows在绘图时,首先根据映射模式坐标系将图形绘制到虚拟的窗口中,然后将窗口中的内容映射到视口中.

  视口:在屏幕上看到的视图客户区域.

2.设备坐标系和逻辑坐标系

  设备坐标系:与视口对应,单位像素,x轴向右,y轴向下.(0,0)点始终显示在平面的左上角

  逻辑坐标系:与窗口对应.根据映射模式的不同,单位和坐标轴的方向都相应的不同.

  默认的映射模式是(MM_TEXT),此时逻辑坐标系单位像素,同设备坐标系各方面都一致.

3.窗口原点和视口原点.

  原点的坐标不一定是(0,0),这是最容易令人费解和误解的地方.一定不要以为原点坐标一定是(0,0).窗口原点和

  视口原点两者映射对应.

  默认情况下,两者的原点都在左上角.

4.SetViewportOrg()和SetWindowOrg()函数

  这两个函数尽量不要一起用,除非你思维敏锐,否则会很混乱,我个人认为使用一个函数就能达到目的,我倾向于只使用SetViewportOrg().

  SetViewportOrg(x,y),参数是设备坐标,将视口原点移至设备坐标系的(x,y).即将逻辑点(0,0)映射成设备点(x,y).

  SetWindowOrg(x,y)参数是逻辑坐标,作用与上相反.

5.什么时候使用逻辑坐标和设备坐标

  所有绘图函数都使用逻辑坐标.

  通过鼠标获得的坐标,GetClientRect()等函数是设备坐标.

我也是初学,不对之处,请多指教~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值