图形学复习文档

来源:互联网 发布:淘宝优惠券winppo 编辑:程序博客网 时间:2024/05/29 07:02

1:计算机绘图方式:
屏幕显示、打印机打印屏幕上的图样和绘图机输出图样
2:像素:
像素是组成图形的基本元素,一般称为“点”。
通过点亮一些像素,灭掉一些像素,即在屏幕上产生图形。在光栅显示器上显示任何一种图形,在显示器的相应像素点上画上所需的像素点,即具有一种或多种颜色的像素集合 构成图形。
确定最佳逼近图形的像素集合,并用指定属性写像素的过程称为 扫描转换或者光栅化。
对于一维图形,在不考虑线宽时,用一个像素宽的直、曲线来显示图形。
二维图形光栅化必须确定区域对应的像素集合,并用指定的属性和图案进行显示,即区域填充。
3:直线算法:
数值微分法(DDA):DDA算法主要是根据直线公式y = kx + b来推导出来的,其关键之处在于如何设定单位步进,即一个方向的步进为单位步进,另一个方向的步进必然是小于1
dda和bresenham算法的区别
Bresenham算法是DDA算法画线算法的一种改进算法。本质上它也是采取了步进的思想。不过它比DDA算法作了优化,避免了步进时浮点数运算,同时为选取符合直线方程的点提供了一个好思路
算法的基本原理:类似于中点法,由误差项符号决定下一个像素取右边点还是右上点。
该算法的巧妙之处就在于:采用了增量计算,使得对每一列,只要检查一个误差项的符号,就可以确定该列所求像素。

4:圆
在进行扫描转换之前,假设圆的圆心位于坐标原点(如果圆心不在原点,可以通过坐标平移使其与原点重合),半径为R。以原点为圆心的圆C有四条对称轴:x = 0, y = 0, x = y和x = -y。若已知圆弧上一点P1=C(x, y),利用其对称性便可以得到关于四条对称轴的其它7个点,即:
P2=C(x,-y),
P3=C(-x, y),
P4=C(-x,-y),
P5=C(y,x),
P6=C(-y,x),
P7=C(y,-x),
P8=C(-y,-x)。
这种性质称为八对称性。
因此,只要扫描转换八分之一圆弧,就可以通过圆弧的八对称性得到整个圆。bresenham和中点画圆法
中点画圆法:中点画圆算法就是每部单位间隔取样并且计算离圆最近的位置
bresenham画圆:是对中点画圆法的改进,减少了浮点运算,提高了运算效率
算法原理:中点画圆法中,计算判别式d使用了浮点运算,影响了圆的生成效率。如果能将判别式规约到整数运算,则可以简化计算,提高效率。于是人们针对中点画圆法进行了多种改进,其中一种方式是将d的初始值由1.25 – R改成1 – R,考虑到圆的半径R总是大于2,因此这个修改不会响d的初始值的符号,同时可以避免浮点运算。还有一种方法是将d的计算放大两倍,同时将初始值改成3 – 2R,这样避免了浮点运算,乘二运算也可以用移位快速代替,采用3 – 2R为初始值的改进算法,又称为Bresenham算法

5:多边形的扫描转换:
矩形是特殊的多边形,但一般多边形扫描算法要用到复杂的数据结构,效率不高,而矩形常用而且经常会用到,所以一般图形软件包把它作为一类基本土元加以设计
Q:共享边会重复绘制,那么边界属于谁?
A:处理规则,左闭右开,下闭上开(左下原则)
多边形的两种表示方法:顶点表示:用多边形的顶点序列(P0,P1...PN)来表示多边形)特点:直观,几何意义强。但是没有指明哪些像素在多边形内部
点阵表示:用位于多边形内的像素集合来刻画多边形。丢失了几何信息。
光栅图形的一个基本问题:把多边形的顶点表示转换为点阵表示。这种转换成为 多边形的扫描转换
凸多边形任意两顶点间的:任意两顶点之间的连线均在多边形内
凹多边形:任意两顶点间的连线有不在多边形内部的

扫描线算法:对不自交多边形
扫描线多边形区域填充算法:
按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的像素,即完成填充。区间的端点可以通过计算扫描线和多边形边界线的交点获得。
算法描述:1:求交,计算扫描线与多边形边界的交点
2:排序,把所有交点按x递增的顺序排序
3:配对,第一个与第二个,第三个与第四个。。。每对交点代表扫描线与多边形的一个相交区间
4:填色,把相交区间内的像素置成多边形颜色,把相交区间外的像素置成背景色
关键问题:求交,为了减少求交的计算量,可以利用边的连贯性:相邻扫描线与边的交点的坐标有连贯性。

种子填充算法:
6:4向连通和8向连通区域填充的算法:假设在多边形内有一像素(种子)已知,由此出发利用连通性找到区域内的所有像素。利用栈实现

7:字符:
字符编码:8位或16位
字符存储:点阵形式如8*8,16*8,24*24等形式表示的字库
存储了每个字符的形状信息,方便在显示器等输出设备上输出。字库中分为矢量型和点阵型

点阵字符:每个字符由一个位图表示。该位位1表示画笔经过此位,对应于此位的像素应置为字符的颜色。该位位0表示不经过,对应于此位的像素应该置为背景颜色
矢量字符:矢量字符记录字符的画笔信息而不是整个位图,具有存储空间小、美观、变换方便等优点。
对于字符的变换需要表示字符位图中的每一个像素进行;而矢量字符只要对其笔画端点进行变换就ok
显示:矢量字符和点阵字符的显示都分为两步:首先要从字库中将字符的位图检索出来。然后将检索到的位图写到帧缓冲器去/取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符。

8:线性插值:
內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方法。
根据若干离散的数据数据,得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合。这个过程叫做拟合。內插是曲线必须通过已知点的拟合。

原创粉丝点击