收藏 分享(赏)

计算机图形学29745.doc

上传人:myk79025 文档编号:9322747 上传时间:2019-08-02 格式:DOC 页数:11 大小:69KB
下载 相关 举报
计算机图形学29745.doc_第1页
第1页 / 共11页
计算机图形学29745.doc_第2页
第2页 / 共11页
计算机图形学29745.doc_第3页
第3页 / 共11页
计算机图形学29745.doc_第4页
第4页 / 共11页
计算机图形学29745.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、1、鼠标器:一种手持滚动设备,是橡 胶 球 传 动 光 栅 轮 带 发 光 二 极管 及 光 敏 三 极 管 之 晶 元 脉 冲 信 号 的 转 换 器 。 现 在 主 要 有 三 大 类 :光 电 式 鼠 标 、 光 机 式 鼠 标 、 机 械 式 鼠 标 。 2、触摸屏:利用手指等对屏幕相应位置的触摸进行定位的一种设备。常见有电阻触摸屏、光学触摸屏、声学触摸屏、电容触摸屏四种。3、阴极射线管(CRT) (图在 P33)(1)定义:阴极射线管由电子枪、聚焦系统、加速系统、磁偏转系统组成;(2)功能:电子枪的作用是产生电子束,由加热灯丝、金属阴极和栅极构成;聚焦系统是一个电透镜,能使众多的电子

2、聚集于一点;加速系统的功能是使电子束达到轰击激发物质应有的速度;磁偏转系统的功能是将高速的电子束达到指定的位置。4、彩色 CRT(1)定义:彩色 CRT 是将红、绿、蓝三种彩色同时显示在一个管屏上合成彩色图形的监视器;其类型有穿透式、荫罩式和荫栅式三种。(2)工作原理:彩色 CRT 显示器的荧光屏上涂有能发出红、绿、蓝颜色的三种物质,由电子枪发出三个电子束来激发这三种物质,中间通过一个控制栅格来决定三束电子到达的位置,最后利用电子束的强弱、电子枪的 256 级强度控制就能产生 24 位真彩色了。5、DDA 画直线算法Void DDA_line(x0,y0,x1,y1,color) int x0

3、,y0,x1,y1,color;int x;float y,k,deltx,delty;Ddeltx = x1 x0;delty = y1 y0;k = delty/deltx;y = y0;for(x = x0; x 1 时,x、y 位置交换,y 每增加 1,x 增加 1/k */6、中点画线法void Midpoint Line (int x0,int y0,int x1, int y1,int color) int a, b, d1, d2, d, x, y;a=y0-y1; b=x1-x0;d=2*a+b;del1=2*a;del2=2* (a+b);x=x0;y=y0;drawpix

4、el(x, y, color);while (x=1e-6else if(k+1=1e-6Int color; 对多边形 polydef 每条边进行直线扫描转换;InsideFlag = FALSE;For(每条与多边形 polydef 相交的扫描线 y)For(扫描线上每个像素 x) if(像素 x 被打上边标志)insideFlag = !(InsideFlag);If(insideFlag != FALSE)putpixel(x,y,color);Else putpixel(x,y,backgroud);10、直线段裁法(Dan Cohen 和 Ivan Sutherland 直线段裁法

5、算法)(1)步骤: 将矩形窗口的四条边界延长,则整个平面被分成九个区域,如图(P68) ,每个区域内的点都对应着一个四位二进制的区位码;根据要裁剪段 p1,p2 的端点坐标求出相应的编码值 C1 和 C2; 判断 P1、P2 是否都在窗口内:(a)若 C1=C2=0,即P1、P2 的编码全为零,线段 P1P2 在窗口内,保留线段P1P2,过程结束;(b)否则,若 C1C20,即作P1、P2 编码的逻辑与,结果为非零时,表示 P1、P2 在窗口外同侧,弃之,过程结束;(C)否则,线段必有一点在窗口外,令该点为 P1,进行下一步。 根据 P1 点的编码确定其在哪条边界线之外,求线段与该边界的交点

6、P,交点分成两段,舍去 P1P 段,把交点 P 作为剩余线段的 P1 端点重新进行第三步。算法如下:#define LEFT1#define RIGHT 2#define BOTTOM 4#define TOP 8#void encode(x,y,code)float x,y;int * code; * code; c = 0;if(x XR) c = c| RIGHT;if(y YT)c=c|TOP;*code = c;return;void SwapPoint(x1,y1,x2,y2)float *x1,*y1,*x2,*y2;float t;t = * x1; *x1 = *x2;*x2

7、 = t;t = * y1; *y1 = * y2; *y2 = t;void SwapCode(code1,code2)int *code1,*code2; int t;t = *code; *code1 = *code2; *code2=t;/*(x1,y1)与(x2,y2)是线段端点坐标,其它四个参数分别为窗口的左、下、右、上边界*/C_S_Line_Clip(x1,y1,x2,y2,XL,XR,YB,YT) int code1,code2,code;encode(x1,y1,encode(x2,y2,while(code10) if(code1 if(code1=0)SwapPoint

8、(SwapCode(code = code1;if(LEFT y = y1 + (y2 - y1) * (XL - x1) / (x2 -x1);else if(RIGHTy = y1 + (y2 - y1) * (XR - x1)/ (x2 - x1);else if(BOTTOMx=x1 + (x2-x1)*(YB-y1)/(y2-y1);else if(TOPx=x1+(x2-x1)*(YT-y1)/(y2-y1);x1 = x;y1 = y;encode(x,y,code1);Displayline(x1,y1,x2,y2);return;11、线型与线宽(1)线型处理:把扫描转换算法

9、写像素语句为 if(patterni%32)putpixel(x,y,color);(2)线宽的处理是指绘制多个像素宽的图形。通常有线刷子、方形刷子和区域填充的三种方法。 线刷子的基本原理是:把扫描转换所得的每个像素上下方或左右方半线宽之内的像素全部置成图形颜色,即可“刷出”具有一定宽度的图形。 方形刷子的基本原理是:方形刷子是扫描转换所得的每个像素上下方和左右方半宽之内的像素全部设置成直线颜色。 区域填充:对于线条,先计算线条各角点,再用直线线段把相邻角点连接起来,最后用区域填充的算法围成的四边形填色。12、反走样过取样过取样:也叫超采样,是指对于光栅图形显示器上提高逻辑分辩率,使得逻辑分辨

10、率超过其物理分辨率的一种伪光栅化。13、切矢量对于三维参数曲线,其任一点切矢量可用矢量 P(t) = x(t) y(t) z(t),p(t)反映曲线关于 t 在该点的变化速度。其方向趋于该点的切线方向。对于一般参数 t,若|dP/dt|0,则有:T = (dP/dt )/ (|dP/dt|);对于弧长参数 s: T = dP/ds = (dP/dt) /(ds/dt),T 为单位矢量。14、挠率设以弧长 s 为参数,则参数曲线上任一点的挠率定义为 t = |dB/ds|,它反映了曲线在该点处扭出其密切平面的速率。 (其中,矢量 N 和矢量 B 张成的平面称为法平面) 。15、插值指给定函数 f

11、(x)在区间a,b中互异的 n 个点(x i,f(x)(i=1,2,n),要求构造一个函数 (xi)=f(xi)(i=1,2,n)。 (x)称为插值函数,(x i,f(x)(i=1,2,n)称为插值节点或型值点。 线性插值给定函数 f(x)的两个不同点(x1,y1)和(x2,y2),构造一个结性插值函数 (x)=ax+b,近似为:(x) = (x-x2)*y1/(x1-x2) + (x-x1) * y2/(x2-x1) 抛物线插值给定函数 f(x)的三个互异点(x1,y1)、(x2,y2)和(x3,y3)构造一个抛物线插值函数 (x)=ax2+bx2+c,近似为:(x) = (x-x2)(x-

12、x3)*y1/(x1-x2)(x1-x3) + (x-x1)(x-x3)*y2/(x2-x1)(x2-x3) + (x-x1)(x-x2)*y3/(x3-x1)(x3-x2)16、Bezier 曲线的性质(1)端点性质: 端点位置矢量位置。Bezier 曲线的两个端点分别为 C(0),C(1):C(0) = i=0nPiBi,n(0)=P0B0,n(0) + P1B1,n(0) + + PnBn,n(0),其中 C(0)=P0,C(1)=P n。 切矢量:C(t)= i=0nPiBi,n(t) = n i=0nPiBi-1,n-1(t) Bi,n-1(t)=n i=0n-1(Pi+1-Pi)B

13、i,n-1(t)C(0) = n(P1 P0)B0,n-1(0) + n(P2-P1)B1,n-1(0) + + n(Pn Pn-1)Bn-1,n-1(1)=n(P1-P0)C(1) = n(P1 P0)B0,n-1(1) + n(P2-P1)B1,n-1(1) + + n(Pn Pn-1)Bn-1,n-1(1)=n(Pn-Pn-1)(2)Bezier 曲线生成算法(de Casteljau 算法)Void Bezier_to_points(k,npoints,controls,points)/*输入:K曲线角度、npoints产生的点数、controls多边形控制座标*/*输出:points

14、多边形的座标点数*/Int k,npointes;Float controls,points; float t,delt;Int i;Float Casteljau();Delt = 1.0 / (float)npoints; /*步长*/t = 0.0;for(i=0;i=npoints;i+) pointsi = Castljau(k,controls,t); t=t+delt;Float Casteljau(k,controls,t)/*使用 Casteljau 算法计算 Bezier 曲线的一个坐标值,并称作控制多边形的每个坐标(x,y,and/or z)*/*输入:k曲线的角度,co

15、ntrols控制多边形的坐标*/*输出:坐标值*/float controls,t;int k; int r,I;float t1,controlsa10;t1 = 1.0 t;for(I = 0;i=k;i+)controlsai=controlsi;for(r=1;r=k;r+)For(i=0;i=k-r;i+)controlsai=t1*controlsai+t*controlsai+1;return controlsa0;17、齐次坐标:将一个原来是 n 维的向量用一个 n+1 维向量来表示。如(x1,x2,xn)的齐次坐标表示为(Hx1,Hx2,Hxn,H),H 为不为0 的实数。1

16、8、 坐标系(1)世界坐标系:一般是三维右手直角坐标系,它的单位根据所描述的实际对象的大小来确定,通常使用实数,取值范围并无限制。 (右手:食指 y 轴,大母指 x 轴,中指 z 轴) (P 117)(2)目坐标系:一般是三维左手直角坐标系,通过变换可在用户坐标系的任何位置,任何方向定义。 (左手:中指 x 轴,大母指y 轴,食指 z 轴)(3)设备坐标系:有时采用左手三维直角坐标系,全都是左手的、三维的。(4)规格化设备坐标系:三维左手直角坐标系 19、三维图形转换(第五章为计算题重点)(1)三维平移转换(P129 过程自己画)(2)三维比例变换(P129)(3)三维错切变换(P132)(4

17、)三维旋转变换(P133)(5)三维复合变换20、轴测投影变换 P14821、灭点(P 152图)一点透视只有一个主灭点,即投影面与一个坐标正交,与另外两个坐标轴平行。进行一点透视投影变换,要很好地考虑图面布局,避免三维形体或对象的平面域积聚成直线或点而影响直观性。应考虑:(1)三维图形体或对象与画面(投影面)的相对位置;(2)视距,即视点(投影中心)与画面的距离;(3)视点的高度。22、几何造型系统:描述物体的三维模型通常有三种,即线框模型、表面模型和实体模型。 线框模型:通过给出各顶点坐标和端点与线段之间的关系表实现数据的表示; 表面模型:在线框的基础上增加了物体中面的信息,用棱边所围成的

18、封闭区域定义实体表面,用面的集合来表示物体; 实体模型:在表面模型的基础上,通过对表面的那一侧存在实体给出明确定义,由表面直接构造实体的一种几何模型。23、分解表示:将形体按某种规则分解为小的更易描述的部分,每个小部分又可分为更小的部分,这种分解过程直至每一小部分都能够直接描述为止。常用方法:四叉树、八叉树和多叉树。 (八叉树过程和图解 P176)24、构造表示:按照生成过程定义形体的方法,通常有扫描表示、构造实体几何表示和特征表示三种方法。25、边界表示:也称 BR 表示,是以物体边界为基础,定义和描述几何形体的方法。 顶点:点是几何造型中的最基本的元素,自由曲线、曲面或其它形体均可用有序的

19、点集表示。顶点是边的端点,顶点的位置用(几何)点来表示。 环:是有序、有向边(直线段或曲线段)组成的面的封闭边界。 面:是二维几何元素,是有界、不自交的连通表面,由一个外环和若干内环来表示。 体:是三维几何元素,是由封闭表面围成的空间,也是欧氏空间 R3国非空、有界的封闭子集,其边界是有限面的并集。26、欧拉操作公式:v-e+f = 2;(面 f,边 e,顶点 v) ,操作在 P182; 27、三维物体消隐分为:线消隐:其消隐对象是物体上的边,消除的是物体上不可见的边;面消隐:其消隐对象是物体上的面,消除的是物体上不可见的面。28、消除隐藏面画家算法原理:先把屏幕置成背景色,再把物体的各个面按

20、其离视点的远近进行排序,离视点远者在表头,离视点近者在表尾,排序结果存于一张深度优先级表中。然后按照从表头到表尾的顺序逐个绘制各个面,由于后显示的图形取代先显示的画面,而后显示的图形所代表的面离视点更近,因此由远及近地绘制各面,就相当于消除隐藏面。缺点:只能处理互不相交的面,而且深度优先级表中面的顺序可能出错。在两个面相交,三个以上的面重叠的情况下,用任何排序方法都不能排出正确的序,这时只能把有关的面进行分割后再排序。29、Z 缓冲区(Z-Buffer 算法) (掌握原理) 帧缓存全置为背景色深度缓存全置为最小 z 值For(每一个多边形)扫描转换该多边形For(计算该多边形在该像素的深度值 Z(x,y); If(Z(x,y)大于 Z 缓存在(x,y)的值)把 Z(x,y)存入 Z 缓存中(x,y)处把多边形在(x,y)处的颜色什存入帧缓存的(x,y)处

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报