计算机图形学 期末复习part3:论述

简介: 计算机图形学 期末复习part3:论述

6.字符的表示与裁剪

1.字符的表示方法

点阵字符——每个字符用一个位图(掩膜) 来表示,位图存的就是表示这个字符的每个像素点的(点亮或不亮)信息。其大小由位图的尺寸来确定,如7×9,9×16,16×24等。某一位取1表示1所在的像素点点亮,某一位取0表示0所在像素点不要点亮。

矢量字符—— 用几何坐标表示字符,保存端点的几何坐标。选一个正方形网格,作为字符的局部坐标空间。网格的大小可选16 × 16,32 × 32,64 × 64等。每个字符由构成它的笔画组成,每个笔画可以看做直线段又由其两端确定。每个端点保存它的坐标值及连线标志。连线标志表示当前端点和前一端点是否存在连线(1表示连线)。用-1表示结束标志。特点:除用直线段表示笔画外,还可采用二次三次曲线段。对矢量字符的变换是对其端点进行图形的几何变换。

2.字符的裁剪方法

简单裁剪方法:用点阵字符的掩膜或矢量字符的网格大小作为字符的包围框,若该包围框在窗口内,则显示字符;否则,不予显示。(字符的一部分在窗口内,一部分在窗口外,也完全不显示)

精确裁剪方法:对于点阵字符,判断组成其笔画的每个像素点是否位于窗口内。对于矢量字符,对组成其笔画的每条线段进行裁剪,保留位于窗口内的可见线段。

7.扫描表示法

1.基本原理

空间的点、线、面沿着某一路径扫描时,所形成的轨迹可用来定义一个一维的、二维的或三维的物体。

在三维形体表示中,主要采用平移扫描法和旋转扫描法。用扫描表示法表示一个三维形体需要两个要素:做扫描移动的面、面进行移动的轨迹。

2.平移扫描法

将一个二维的面沿着一个指定的方向平行(如可以斜向上)移动,其轨迹便形成了一个三维形体。特点:采用这种方法得到的形体具有相同的截面。

3. 旋转扫描法

将一个二维的面绕一条母线(旋转轴)旋转,其轨迹便形成了一个三维形体。特点:得到的物体都是轴对称物体。

4. 广义扫描法

若在平移扫描的过程中可改变截面的大小和形状,甚至改变移动的方向,便可形成复杂的三维形体。

8.正投影

正投影的投影面与某一坐标轴垂直,而投影方向与该坐标轴的方向一致。

形成正投影时必须满足的条件:1.投影中心到投影面距离无限(形成平行投影)。2.投影线和投影面垂直(正平行投影)。3.投影面和坐标轴垂直(正投影)。正投影的图形在长宽高三个方向上的比例与实物保持一致,不具有透视投影透视缩小效应,能够精确反映物体实际尺寸。因此,常用于工程制图。

给出投影线方向,投影线与投影面垂直,与另一个轴平行。对于线画图形,把每条边求出来,就能把投影面求出来。边由端点确定,只需要把每一条边的端点在投影面上投影求出,按点的拓扑关系(连接关系)把边连出来,即可以绘制主视图。

得到投影图的关键在于得到构成这些投影图的特征点的坐标,根据投影变换矩阵进行计算点坐标。在坐标系中把点确定后按照原始拓扑关系重新连点,把投影图画出来。投影就是一种几何变换。把每个点的规格化坐标乘上投影变换矩阵得到投影点坐标。

正投影的投影变换矩阵根据投影前后坐标变换关系得到。

主视图投影面与x轴垂直,正面投影面,可以在yOz平面得到

image.png

侧视图投影面与y轴垂直,侧面投影面,可以在xOz平面得到

image.png

俯视图投影面与z轴垂直,水平投影面,可以在xOy平面得到

image.png

9.消隐算法常用的技术

1.排序

在一个三维场景中,离观察者越近的物体被遮挡概率越小,被观察者看到的概率越大,可见性越大。

确定物体间遮挡关系的要素:视点位置、视线方向(z值)。即距离观察者的远近程度。

按观察方向上离视点(投影参考点)的远近(深度坐标)(通常用 z 值来表示)排序,在uvn坐标系中是n坐标。建立观察坐标系后,得到每一个物体对于观察者的深度,才能进行排序。要按照三个坐标进行排序后才能真正确定与观察者之间的遮挡关系,但先按深度坐标排序。

2.测试

判断物体自己构成要素(点线面)之间的遮挡关系。用以判断点与面、线与面、面与面之间的关系。

包含测试:测试空间点的投影是否在某个空间多边形的投影内(点面关系),若在,则可能存在遮挡关系;若不在,则不存在遮挡关系。测试方法:从空间点的投影开始向与 y 轴平行的方向作射线,计算该射线与空间多边形的投影的交点个数,若为奇数,则点的投影在多边形的投影内;若为偶数,则点的投影不在多边形的投影内。(若恰好经过多边形顶点,左闭右开,只计算左边,右边不计数)

重叠测试:测试两个空间多边形的投影是否重叠,若重叠,则可能存在遮挡关系;若不重叠,则不存在遮挡关系。测试方法:用包围框方法来测试,最常用的是包围某个多边形的最小矩形。在图形包围框彼此重叠的情况下,用边的包围框进行重叠测试。

10.提高消隐算法效率的方法

1.利用相关性(连贯性)

相关性定义:所考察的物体或视图区内图像局部的性质保持不变或缓慢变化,像素点近似保持不变。(1)物体的相关性:用于判断物体之间遮挡关系。若物体 A 与物体 B 是完全相互分离的,消隐时只需比较 A 、 B 两物体之间的遮挡关系,而不需对其表面多边形逐一进行测试。物体面的遮挡关系决定于物体之间的遮挡关系。

(2)面的相关性:一个面内的各种属性值(坐标值、灰度值等)一般都是缓慢变化的,可采用简单增量方式进行计算。

(3)区域相关性:一个区域是指屏幕上一组相邻的像素,它们通常属于同一个可见面。区域相关性表现在一条扫描线上时,即为扫描线上的每个区间内只有一个面可见。

(4)扫描线相关性:在相邻的两条扫描线上,可见面的分布情况相似。

(5)深度相关性:物体的同一表面上的相邻部分深度是相近的。

2.包围盒技术

对物体间的某些关系进行比较和测试,(由于物体不规则)从而可避免盲目的求交运算,减少计算量,提高效率。

二维图形 ----- 包围框(重叠测试);

三维物体 ----- 包围盒、包围球。

3.背面剔除

一个平面多面体的表面由若干个平面多边形构成,若一个多边形表面的外法线(从内指向外的法线)方向与投影方向(观察方向)的夹角为钝角,则该面为前向面;若其夹角为锐角,则为后向面或背面。被保留下的前向面被称为潜在可见面。

4.活化表技术 ( active list )

设置活化表,用于存放与当前的处理相关的信息,从而可最大限度地缩小处理范围,提高算法的率。


目录
相关文章
|
编解码 算法 5G
信息论与编码期末复习——概念论述简答题(一)
信息论与编码期末复习——概念论述简答题(一)
590 0
信息论与编码期末复习——概念论述简答题(一)
|
负载均衡 前端开发 Java
Spring Cloud Feign(声明式服务调用)使用指南
Spring Cloud Feign(声明式服务调用)使用指南
5320 0
Spring Cloud Feign(声明式服务调用)使用指南
|
Java 网络安全 Windows
springboot项目报错:ERROR 9112 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] 的解决办法
springboot项目报错:ERROR 9112 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] 的解决办法
springboot项目报错:ERROR 9112 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] 的解决办法
|
存储 缓存 自然语言处理
LangChain在构建智能文档检索系统中的应用
【8月更文第3天】随着大数据时代的到来,企业和组织积累了大量的文档资料。如何有效地管理和检索这些文档成为了一个重要的问题。传统的关键词搜索虽然简单,但在面对复杂查询和模糊匹配时显得力不从心。LangChain 是一个强大的框架,旨在帮助开发者构建文本生成应用程序,它能够利用最新的自然语言处理技术来理解和响应自然语言查询。本文将探讨如何利用 LangChain 构建一个能够理解和响应自然语言查询的文档检索系统。
391 0
|
算法 调度 UED
深入理解操作系统中的进程调度
【8月更文挑战第29天】操作系统是计算机系统的核心,负责管理硬件资源和提供各种服务。其中,进程调度是操作系统中至关重要的一环,它决定了哪些进程将获得处理器时间以及何时获得。本文将从进程调度的基本概念出发,探讨不同类型的调度算法及其优缺点,并通过实际代码示例加深理解。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和知识。
317 8
|
存储 数据处理 C++
超级好用的C++实用库之点阵字体
超级好用的C++实用库之点阵字体
353 0
|
前端开发 Java
Java HotSpot(TM) 64-Bit Server VM warning
Java HotSpot(TM) 64-Bit Server VM warning
5228 1
|
存储 Python
数据包络分析(Data Envelopment Analysis, DEA)详解与Python代码示例
数据包络分析(Data Envelopment Analysis, DEA)详解与Python代码示例
|
SQL JSON Java
基于dataX实现多种数据源数据汇聚(一)
在数据中台项目实践过程中,经常需要获取多个部门、多个系统的数据,此时面临多种多样的数据库,如何快速稳定的获取数据,并持续归集到数据中台的数据仓库中,是每个数据中台项目必须解决的问题。本文介绍了我在项目实践过程中,基于dataX实现数据汇聚的一些使用心得,在此和大家分享,希望有所帮助。
3165 0
基于dataX实现多种数据源数据汇聚(一)
|
算法 图形学
【计算机图形学】实验三 用Cohen-Sutherland裁剪算法实现直线段裁剪
【计算机图形学】实验三 用Cohen-Sutherland裁剪算法实现直线段裁剪
1253 2