坐标空间

坐标空间

Microsoft Windows下的程式运用坐标空间和转换来对图形输出进行缩放、旋转、平移、斜切和反射。

    • 中文名:坐标空间
    • 外文名:Microsoft Windows
    • 释义:坐标空间和转换
    • 作用:旋转、平移、斜切和反射
    • 拼音:zuobiaokongjian

简介

坐标空间

zuòbiāo kōngjiān

[coordinate space] 通常意义下三维几何空间的名称,以区别于各种符号相空间

VC中的坐标空间

一个坐标空间是一个平面的空间,通过使用两个相互垂直并且长度相等的轴来定位二维对象。Win32应用程式设计接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间、和物理设备空间。应用程式运用世界坐标系空间对图形输出进行旋转、斜切或者反射。

Win32 API把世界坐标系空间和页面空间称为逻辑空间;最后一种坐标空间(即物理设备空间)通常指应用程式视窗的客户区;但是它也包括整个桌面、完整的视窗(包括框架、标题栏和选单栏)或印表机的一页或绘图仪的一页纸。物理设备的尺寸随显示器、印表机或绘图仪所设定的尺寸而变化。

转换

如要在物理设备上绘製输出,Windows把一个矩形区域从一个坐标空间拷贝到(或映射到)另一个坐标空间,直至最终完整的输出呈现在物理设备上(通常是萤幕或印表机) 。

如果该应用程式调用了SetWorldTransform函式,那么映射就从应用程式的世界坐标系空间开始;否则,映射在页面空间中进行。在Windows把矩形区域的每一点从一个空间拷贝到另一个空间时,它採用了一种被称作转换的算法,转换是把对象从一个坐标空间拷贝到另一个坐标空间时改变(或转变)这一对象的大小、方位、和形态,儘管转换把对象看成一个整体,但它也作用于对象中的每一点或每条线。

页面空间到设备空间的转换

页面空间到设备空间的转换是原Windows接口的一部分。这种转换确定与一特定设备描述表相关的所有图形输出的映射方式。

所谓映射方式是指确定用于绘图操作的单位大小的一种量度转换。映射方式是一种影响几乎任何客户区绘图的设备环境属性。另外还有四种设备环境属性:视窗原点、视口原点、视窗範围和视口範围,这四种属性与映射方式密切相关。

页面空间到设备空间的转换

页面空间到设备空间的转换所用的是两个矩形的宽与高的比率,其中页面空间中的矩形被称为视窗,设备空间中的矩形被称为视口,Windows把视窗原点映射到视口原点,把视窗範围映射到视口範围,就完成了这种转换。

默认转换

一旦应用程式建立了设备描述表,并立即开始调用GDI绘图或输出函式,则运用默认页面空间到设备空间的转换和设备空间到客户区的转换(在应用程式调用SetWorldTransform函式之前,不会出现世界坐标空间到页面空间的转换)。

默认页面空间到设备空间的转换结果是一对一的映射;即页面空间上给出的一点映射到设备空间的一个点。正如前文讲到的,这种转换没有以矩阵指定,而是通过把视口宽除以视窗宽,把视口高除以视窗高而得出的。在默认的情况下,视口尺寸为1x1个象素,视窗尺寸为1x1页单位。

设备空间到物理设备(客户区、桌面或印表机)的转换结果总是一对一的;即设备空间的一个单位总是与客户区、桌面、或印表机上的一个单位相对应。这一转换的唯一用途是平移。无论视窗移到桌面的什么位置,它永远确保输出能够正确无误地出现在视窗上。

默认转换的一个独特之处是设备空间和应用程式视窗的y轴方向。在默认的状态下,y轴正向朝下,负y方向朝上。

逻辑坐标和设备坐标

几乎在所有的GDI函式中使用的坐标值都是採用的逻辑单位。Windows必须将逻辑单位转换为“设备单位”,即像素。这种转换是由映射方式、视窗和视口的原点以及视窗和视口的範围所控制的。

Windows对所有的讯息(如WM_SIZE、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUP),所有的非GDI函式和一些GDI函式(例如GetDeviceCaps函式),永远使用设备坐标。

“视窗”是基于逻辑坐标的,逻辑坐标可以是象素、毫米、英寸等单位;“视口”是基于设备坐标(象素)的。通常,视口和客户区是相同的。

预设的映射模式为MM_TEXT。在这种映射模式下,逻辑单位和设备单位相同。

相关词条

相关搜索

其它词条