计算机图形软件(三)6-1 坐标表示

     图形软件有两个大类:专用软件包和通用编程软件包。专用图形软件包是为非程序员设计的,使得他们在某些应用中能用来生成图形、表格而不必关心显示所需的图形函数。专用软件包的接口通常是一组菜单,用户通过菜单按自己的术语与程序进行通信。这类应用的例子包括艺术家绘画程序和各种建筑、商务、医学及工程 CAD 系统。相反,通用图形编程软件包提供一个可用于C、C++、Java 或 Fortran 等高级程序设计语言的图形函数库。典型的图形库中的基本函数用来描述图元(直线、多边形、球面和其他对象)、设定颜色、选择观察的场景和进行旋转或其他变换等。通用图形程序设计软件包有 GL(Graphics Library)、OpenGL、VRML( Virtual-Reality Modeling Language,虚拟现实建模语言)Java 2D和Java 3D等。由于图形函数库提供了程序设计语言(如C++)和硬件之间的软件接口,所以这一组图形函数称为计算机图形应用编程接口(computer-graphics application programming interface CC API)。在我们使用C++编写应用程序时,可以使用图形函数组织图形并显示在输出设备上。

坐标表示


        使用程序设计软件包生成图形时,首先需要给出显示对象的几何描述。该描述确定对象的位置和形状。例如,一个立方体由它的顶点位置来描述,一个球由其中心位置和半径来定义。除了少数的例外情况,通用图形软件包要求在标准的、右手系的、笛卡儿坐标参考系统(参见附录A)中给出几何描述。如果一个图形的坐标值是在某个其他参照系(球面坐标、双曲坐标等)中指定的,那么它们必须先转换为笛卡儿坐标再输入图形软件。某些针对专门应用的图形软件包允许采用适合该应用的其他坐标系。
        通常,在构造和显示一个场景的过程中会使用儿个不同的笛卡儿参照系。首先在各自的参照系中构造每一对象的形状比如树或家具。这些坐标系称为建模坐标系(modeling coordinate).有时也称为局部坐标系(localcoordinate),或主坐标系(master cordinate)。一旦指定了单个物体的形状,我们可将对象放到称为世界坐标系( world coordinate)的场景参照系中的适当位置。这-步涉及从单独的建模坐标系到世界坐标系的指定位置和方向的变换。作为一个例子,我们可以在各个独立的建模坐标系中定义自行车的零件(车轮、车架、坐垫、车把手、齿轮、链条、踏板等),然后将这些零件在世界坐标系中装配起来。如果两个车轮尺寸相同,我们只需要在局部坐标系中定义一个车轮。该车轮装配到世界坐标系的两个位置。如果场景不是很复杂,对象的各部分可以直接在世界坐标系中建立,从而跳过建模坐标和建模变换两步。在建模坐标系和世界坐标系中可以使用任何浮点数或整数值来给出几何描述,而不受特定输出设备的约束。对于某些场景,可能要用一英尺的分数值来指定物体尺寸;而对于其他的应用场合,我们可能要用毫米、千米或光年等单位。

        在描述好场景的所有部分之后,要将该场景的世界坐标描述经各种处理变换到一个或多个输出设备参照系来显示。这个过程称为观察流水线(viewing pipeline)。世界坐标系的位置首先转换到与我们要对场景进行观察所对应的观察坐标系(viewing coordinate),该转换依据假想照相机的位置和方向来进行。然后,对象位置变换到该场景的一个二维投影,该投影对应于我们在输出屏幕上看到的结果。然后将该场景存人规范化坐标系(normalized coordinate)其坐标范围从-1到1或从0到1这依赖于不同的系统。规范化坐标系也称为规范化设备坐标系,使用该表示可使图形软件包与任何特定输出设备的坐标范围无关。我们还要识别可见面并清除在显示设备上观察边界之外的图形部分。最后,图形经扫描转换到光栅系统的刷新缓存中进行显示。显示设备的坐标系称为设备坐标系(device coordinate),或对视频监视器而言称为屏幕坐标系(screencoordinate)。规范化坐标系和屏幕坐标系都是左手系,即离开xy 平面(屏幕或观察平面)的正距
        离增加方向可解释为远离观察位置而去。图3.1 给出了对于一个三维对象从建模坐标到设备坐标的坐标变换序列。图中初始的建模坐标位置(xm,y,)变换为世界坐标系,接着是观察和投影坐标系,然后是左手、规范化坐标系,最后到设备坐标系位置(x,y),其序列为

 对于特定的输出设备,设备坐标xd和ya是整数,范围为。除了观察表面的二维坐标还保存每一设备坐标位置的深度信息,用于各种可见性和面处理算法。

 计算机图形软件(三)6-1 坐标表示_第1张图片

 图3.1
        三维场景从建模坐标到设备坐标的变换序列。对象形状在单独的建模坐标系定义。然后该形体定位到总的世界坐标场景内。接着,世界坐标描述又变换到观察坐标系和投影坐标系,然后到规范化坐标系。最后一步独立的设备驱动器将该场景的规范化坐标表示变换到输出设备,并进行显示。

 

 

你可能感兴趣的:(计算机图形学,图像处理)