坐标映射在程序员的眼中就是要根据自己实际问题的要求,构造出一个满足要求的逻辑空间。所谓的满足要求就是指每一个我们在程序中使用的点,都能出现在physical device上我们预期的相应位置。由于device空间到physical device空间是一对一的映射,因此,我们完全可以将绘图目的地看成device空间,所构造出的逻辑空间也只需正确映射到device空间就可以了。
3.1 page空间 → device空间
如果我们不使用world空间,此时的逻辑空间就是page空间。下面来看如何确定它的三个要素:单位刻度值、方向、原点。
首先要使用setmapmode(int)函数选择映射模式。这其中有6种事先已经定义好了的模式,可以直接拿来就用,比如mm_himetric模式表示page空间的单位刻度是0.01毫米,x轴正向向右,y轴正向向上,原点与device空间的原点重合。如果此时程序中有一条值为10的线段,那么在程序员的眼中,这就是一条10×0.01=0.1毫米的线段,不管使用多大分辨率的显示器它都是这么长,我们甚至可以用尺子在屏幕上量量试试。如果选择预定义的映射模式,相当于微软已经为我们构造好了page空间,下面的事我们就都不用做了。