图形基础(五十七)

2010-12-30 21:10:52 · 作者: · 浏览: 40690
上至下的,而MM_TEXT以同样的方向定义轴上值的增长方向:


 

Windows提供了函式SetViewportOrgEx和SetWindowOrgEx,用来改变视埠和视窗的原点,这些函式都具有改变轴的效果,以致(0,0)不再指左上角。一般来说,您会使用SetViewportOrgEx或SetWindowOrgEx之一,但不会同时使用二者。

我们来看一看这些函式有何效果:如果将视埠原点改变为(xViewOrg,yViewOrg),则逻辑点(0.0)就会映射为装置点(xViewOrg,yViewOrg)。如果将视窗原点改变为(xWinOrg,yWinOrg),则逻辑点(xWinOrg,yWinOrg)将会映射为装置点(0,0),即左上角。不管对视窗和视埠原点作什么改变,装置点(0,0)始终是显示区域的左上角。

例如,假设显示区域为cxClient个图素宽和cyClient个图素高。如果想将逻辑点(0,0)定义为显示区域的中心,可进行如下呼叫:

SetViewportOrgEx的参数总是使用装置单位。现在,逻辑点(0,0)将映射为装置点(cxClient/2,cyClient/2),而显示区域的座标系变成如下形状:


 

逻辑x轴的范围从-cxClient/2到+cxClient/2,逻辑y轴的范围从-cyClient/2到+cyClient/2,显示区域的右下角为逻辑点 (cxClient/2,cyClient/2)。如果您想从显示区域的左上角开始显示文字。则需要使用负座标:

用下面的SetWindowOrgEx叙述可以获得与上面使用SetViewportOrgEx同样的效果: