windows里,任何时候,当程序向显示器或打印机进行绘制时,它必须使用gdi函数.gdi函数可以绘制点,直线,矩形,多变形,椭圆,位图和文本.为了更好的控制图形或文字在显示设备上的绘制,windows使用映射模式来解决这个问题.
在windows下,一共有三大类影射模式.分别为MM_TEXT模式,固定比例的映射模式和可变比例的影射模式.每种影射模式模式其优缺点.
一,MM_TEXT影射模式,在此模式下,向右移动,x增加,向下移动,y增加.如,以下代码在坐标(100,100)处画个半径为100的圆.
hdc = BeginPaint(hWnd,&ps);
SelectObject(hdc,GetStockObject(BLACK_BRUSH));
Ellipse(hdc,100,100,200,200);
EndPaint(&ps);
因为此模式和设备坐标相似,因此,默认情况下,windows使用的是此模式.
二 ,固定比例的影射模式
固定比例的映射模式又分为以下几中.
(1)MM_LOENGLISH 0.01英寸
(2)MM_HIENGLISH 0.001英寸
(3)MM_LOMETRIC 0.1毫米
(4)MM_HIMETRIC 0.01毫米
(5)MM_TWIPS 1/1440英寸
此模式下,向右移动,x增加;向下移动,y减少.
三,可变比例模式
可变比例模式分为两种,MM_ISOTROPIC和MM_ANISOTROPIC.他们允许我们改变比例因子和原点。使用MM_ISOTROPIC 模式时,将始终保持1:1的纵横比.换句话说,无论比例因子如何变,圆始终是个圆.在MM_ANISOTROPIC方式中.x和y比例因子可以分别改变.圆可以压成椭圆.
在windows下,一共有三大类影射模式.分别为MM_TEXT模式,固定比例的映射模式和可变比例的影射模式.每种影射模式模式其优缺点.
一,MM_TEXT影射模式,在此模式下,向右移动,x增加,向下移动,y增加.如,以下代码在坐标(100,100)处画个半径为100的圆.
hdc = BeginPaint(hWnd,&ps);
SelectObject(hdc,GetStockObject(BLACK_BRUSH));
Ellipse(hdc,100,100,200,200);
EndPaint(&ps);
因为此模式和设备坐标相似,因此,默认情况下,windows使用的是此模式.
二 ,固定比例的影射模式
固定比例的映射模式又分为以下几中.
(1)MM_LOENGLISH 0.01英寸
(2)MM_HIENGLISH 0.001英寸
(3)MM_LOMETRIC 0.1毫米
(4)MM_HIMETRIC 0.01毫米
(5)MM_TWIPS 1/1440英寸
此模式下,向右移动,x增加;向下移动,y减少.
三,可变比例模式
可变比例模式分为两种,MM_ISOTROPIC和MM_ANISOTROPIC.他们允许我们改变比例因子和原点。使用MM_ISOTROPIC 模式时,将始终保持1:1的纵横比.换句话说,无论比例因子如何变,圆始终是个圆.在MM_ANISOTROPIC方式中.x和y比例因子可以分别改变.圆可以压成椭圆.