1 / 23

第 3 章 二维观察变换与裁剪

第 3 章 二维观察变换与裁剪. 3.1 窗口 — 视区变换 3.2 工作站变换 3.3 二维裁剪算法. 规范化变换 / 窗口 - 视区变换. 工作站变换. 二维变换. 二维裁剪. 图形显示. 观察变换. 二维图形输出流水线. 3.1 窗口 — 视区变换. 3.1.1 基本概念. 1. 用户域和窗口(对用户坐标系而言). . 窗口. . 世界(用户)坐标系. 用户域 是用户定义设计对象的连续无限的二维或三维空间。 窗口 在用户域中指定的一个区域,用户只能将该区域的图形输出到图形设备上。 窗口是用户域的一个子域。

Download Presentation

第 3 章 二维观察变换与裁剪

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 二维观察变换与裁剪 3.1窗口—视区变换 3.2工作站变换 3.3二维裁剪算法

  2. 规范化变换/ 窗口-视区变换 工作站变换 二维变换 二维裁剪 图形显示 观察变换 二维图形输出流水线

  3. 3.1 窗口—视区变换 3.1.1 基本概念 1. 用户域和窗口(对用户坐标系而言)  窗口  世界(用户)坐标系

  4. 用户域 是用户定义设计对象的连续无限的二维或三维空间。窗口 • 在用户域中指定的一个区域,用户只能将该区域的图形输出到图形设备上。 • 窗口是用户域的一个子域。 • 窗口一般是矩形区域,可用其左下角点和右上角点坐标来表示。通常窗口的边界与坐标轴平行。 • 窗口可以嵌套。

  5. 2. 规范化设备坐标系 视区 1  viewport  0 1 规范化设备坐标系 • 规范化设备坐标系:用一个单位正方形定义的一个虚拟显示设备的显示区域,且单位正方形的左下角位于坐标系统的原点。 • 目的与作用:引入一个与显示设备无关的工具描述显示区域。使应用程序与图形设备无关,增强应用程序的可移植性。

  6. 3.1.2 窗口-视区变换 窗口 (vx,vy) (wx,wy)  1 视区  0 0 1

  7. 矩阵表达式:

  8. 3.2 工作站变换 屏幕区 工作站窗口 1 工作站视区 V Workstation viewport 0 1 0 H 规范化设备坐标系 设备/图像坐标系 工作站变换:将规范化坐标变换为离散设备/图像坐标。它本质上是第二个窗口-视区变换。 注:工作站窗口可以是这个视区,也可以是其一部分.

  9. 1 主菜单区 2 子菜单区 3 图形显示区 4 提示信息区 视图分区

  10. 设备坐标系(DC) • 图形输出设备(如显示器、绘图机)上的坐标系 • 是一个二维平面坐标系 • 定义域是整数域且有界

  11. 屏幕域和视图区 • 屏幕域 • 屏幕域是图形设备上输出图形的最大区域 • 屏幕域是有限的整数域,如分辨率为1024×768的显示器,其屏幕域 DC 可定义为: DC∈[0∶1023]×[0∶767] • 视图区 • 用户在屏幕域内指定的用于显示图形的区域 • 用设备坐标定义,一般定义成矩形,由其左下角点和右上角点坐标来定义 • 一个屏幕可以定义多个视图区,并且视图区可以嵌套

  12. 3.3 二维裁剪算法 • 一般地,对于给定的区域,判断图形的哪些部分在该区域内或区域外的过程称为裁剪算法。相应的参考区域称为窗口。 • 裁剪技术的本质问题是对线段或多边形作求交与裁剪,仅保留需要的部分。 • 按照裁剪对象的不同,裁剪算法分为: • 点裁剪 • 线裁剪(直线段) • 区域裁剪(多边形) • 曲线裁剪 • 文本裁剪

  13. 假设裁剪窗口 是一个矩形,其边界平行于坐标轴。 1. 点裁剪 对于点P(x,y),若下面的不等式成立,则P显示。 否则,P被裁剪掉。 应用: 由粒子(点)造型的场景,如爆炸、海上的泡沫等。

  14. 2. 直线段裁剪 P9 P10 P2 P4 P8 P1 P6 P3 裁剪前 P5 P7 P2’ P1’ 裁剪后 P6’ P8’ P5’ P7’

  15. 线段裁剪的基本过程: 首先,对于给定的线段,判定它是否完全在裁剪窗口内;如果不是,判定它是否完全在裁剪窗口外。最后,如果我们不能判定一个线段完全在裁剪窗口内或外,则必须与一个或多个窗口边界求交。 具体方法:对线段的端点进行“内-外”测试。 (1)若线段的两个端点都在窗口内,则保留线段; (2)若线段的两个端点都在窗口任一边界的外侧,则舍弃线段; (3)所有穿过一个和多个窗口边界的线段需进行求交运算。以找出该线段落在窗口区内或窗口边界上的起始点和终止点的坐标。

  16. 编码裁剪法((Cohen-Sutherland算法): • 第一步,区域编码 • 延长窗口边界,将平面分成9个区域,每个区域用4位二进制 代码表示,称为区域码。其作用是识别点相对于裁剪窗口边界的位置。 约定4位码中最右边一位为第1位,则编码规则如下: above 1010 1001 1000 right left 0001 0010 0000 0101 0100 0110 below

  17. 第二步 ,建立线段端点的区域编码。 设(x,y)是线段端点的坐标,则第1位取 的符号位。 第2位取 的符号位。 第3位取 的符号位。 第4位取 的符号位。 第三步,判断线段与窗口间的位置关系。 (1)若线段两端点的编码均为“ 0000”, 则线段全部位于窗口内。 (2)若线段两端点编码的逻辑“与”不是0000,则线段必位于窗口外。

  18. (3)若根据(1)、(2)不能直接判定线段在窗口内或窗口外,我们需要计算线段与窗口边界的交。由下图可知,这些线段可能穿入窗口的内部,也可能不穿过窗口的内部。(3)若根据(1)、(2)不能直接判定线段在窗口内或窗口外,我们需要计算线段与窗口边界的交。由下图可知,这些线段可能穿入窗口的内部,也可能不穿过窗口的内部。 这类线段的处理过程: 将线段的位于窗口外端点与窗口边界进行比较,以确定线段的多大部分被舍弃。对剩余的部分线段继续按(1)、(2)和(3)进行处理。直到线段完全在窗口内或完全在窗口外为止。 P2  P2’ P1’  P3 P1  P3’ P4

  19. 具体操作: (1)可以按照left,right, bottom, top的顺序检查线段端点与窗口边界之间的关系。 现通过例子对该算法进行说明。考虑线段P1P2的端点P1,依次检查P1与窗口的左、右和下边界间的位置关系,发现P1点在裁剪窗口的下面。于是求出该线段与窗口底边界的交点P1’。这时,线段变为P1’P2。由于P2在裁剪窗口之外,通过检查该端点与窗口边界的关系发现,它在窗口的左侧。可以计算出线段P1’P2与窗口左边界的交点为P2’,该点位于窗口的上部,因此最后的交点为P2’’。线段P1’P2’’保留。 P2 P2’   P2’’ P1’  P3 P1  P3’ P4

  20. (2) 线段与边界的求交算法 一般地,由(x1, y1)到(x2,y2)的截距式表示可求出该线段与垂直边界交点的y坐标为: 或 类似地,线段与水平边界交点的x坐标为: 其中, 或

  21. 回顾二维图形输出流水线: 规范化变换/ 窗口-视区变换 工作站变换 二维变换 二维裁剪 图形显示 观察变换

  22. 习题3 3-1 (a) 求出物体绕坐标原点旋转30度的变换矩阵; (b)求出点P(2,4)在上述旋转变换后新的坐标值。 3-2 写出物体绕固定点P(h,k)旋转的变换矩阵的一般形式。 3-3 求三角形A(0,0), B(1,1), C(5,2)旋转45度后的新三角形的顶点坐标。(a)绕坐标原点旋转; (b)*绕P(-1,-1)旋转。 3-4 已知窗口左下角与右上角的坐标分别为(1,1)和(3,5),求规范化坐标变换 。(a)视区为整个规范化设备屏幕空间; (b)视区的左下角和右上角坐标分别为(0,0)和(1/2,1/2)。 上机实践题之一: 编程实现直线段的编码裁剪算法。

  23. 选做题 3-1 写出关于固定点P(h,k)进行比例变换的矩阵的一般形式。 3-2 若将三角形A(0,0), B(1,1), C(5,2)放大2倍,同时保持C(5,2)顶点的位置不变,试求出新三角形的坐标。 3-3 了解Liang-Barsky裁剪算法。

More Related