有映射模式MM_LOMETRIC 其视口范围为(1024,-768),窗口范围为(3200,24000)
我是这样理解范围的,假设范围不会被widnows所改变,那么这种模式就是说,以客户区左上角为(0,0),设备坐标系下,在客户区中,其水平坐标(向右)的最大取值为1024个像素,在垂直方向(向下)的最大取值为768个像素,窗口指得是逻辑坐标3200,2400的理解相同,但是-768的负号怎么理解呢,按照公式yViewport=yWindowx *yViewExt/
yWinExtEx来看,负号仅仅是决定了逻辑坐标的方向而已,但是我把
//
SetMapMode(hdc,MM_LOMETRIC);
SetWindowExtEx(hdc,3200,-2400,NULL);
SetViewportExtEx(hdc,1024,768,NULL);
就是把-768改为768,把2400改为-2400,按照公式来看,效果应该是一样的啊,但是我用TextOut输出时,发现逻辑坐标向下为正,与MM_LOMETRIC 不同,为什么会这样呢,到底如何理解窗口范围和视口范围,另外我发现那些映射模式,都是把负号加在视口范围的y值上,是不是自己设定范围时也得这样呢,望各位知道的一定要想告下,头大啊
|