利用GDI绘图的时候需要明白几个概念 设备坐标与逻辑坐标的区别,viewPort跟windowsPort的区别
<1>设备坐标跟逻辑坐标
设备坐标包括三种,客户区坐标,窗口坐标,屏幕坐标,它的特点是以左上角为原点,x轴向右递增,y轴向下递增,单位是像素。
逻辑坐标默认情况下跟设备坐标重合,采用像素为单位,但是逻辑坐标的单位并不一定是像素,它可以是具体的物理度量单位,包括mm,inch。我们再绘图的时候采用的都是逻辑单位,windows会把这些逻辑单位转换为像素单位。
<2>viewPort 和 windowsPort
这两者的翻译是视口,窗口。视口是基于设备坐标(像素的),窗口是基于逻辑坐标的,默认情况下两者重合。但是可以设置视口坐标系的原点以及窗口坐标系的原点。这时候要理解两个函数 SetViewportOrg(x,y),SetWindowportOrg(x,y)。
SetViewportOrg(x,y):指定设备点(x,y)映射到逻辑点(0,0);//视口原点跟窗口原点匹配
SetWindowPortOrg(x,y):指定逻辑点(x,y)映射到设备点(0,0)//
注意点:
要注意区分视口坐标系原点跟视口原点的区别,窗口坐标系原点跟窗口原点的区别
<1>设备坐标跟逻辑坐标
设备坐标包括三种,客户区坐标,窗口坐标,屏幕坐标,它的特点是以左上角为原点,x轴向右递增,y轴向下递增,单位是像素。
逻辑坐标默认情况下跟设备坐标重合,采用像素为单位,但是逻辑坐标的单位并不一定是像素,它可以是具体的物理度量单位,包括mm,inch。我们再绘图的时候采用的都是逻辑单位,windows会把这些逻辑单位转换为像素单位。
<2>viewPort 和 windowsPort
这两者的翻译是视口,窗口。视口是基于设备坐标(像素的),窗口是基于逻辑坐标的,默认情况下两者重合。但是可以设置视口坐标系的原点以及窗口坐标系的原点。这时候要理解两个函数 SetViewportOrg(x,y),SetWindowportOrg(x,y)。
SetViewportOrg(x,y):指定设备点(x,y)映射到逻辑点(0,0);//视口原点跟窗口原点匹配
SetWindowPortOrg(x,y):指定逻辑点(x,y)映射到设备点(0,0)//
注意点:
要注意区分视口坐标系原点跟视口原点的区别,窗口坐标系原点跟窗口原点的区别