计算机图形学二到七章小结.ppt_第1页
计算机图形学二到七章小结.ppt_第2页
计算机图形学二到七章小结.ppt_第3页
计算机图形学二到七章小结.ppt_第4页
计算机图形学二到七章小结.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DDA算法的特点 1. 方法直观 2. 效率低(y,k必须用浮点数表示,且每一步运算都必须对y进行四舍五入) 3. 迭代的算法 4. 仅适用于k1(斜率受限制)。 中点画线法的步骤 1. 输入直线的两端点p0(x0,y0)和p1(x1,y1) 2. 计算初始值a=y0-y1,b=x1-x0,d=2a+b,x=x0,y=y0 3. 绘制点(x,y),判断d的符号: 3.1 若d0,则(x,y)更新为(x+1,y+1),d更新为:d+2a+2b 3.2 否则(x,y)更新为(x+1,y),d更新为:d+2a 4. 当直线没有画完时,重复步骤3。否则结束。 Bresenham画线算法 1. 输入直线

2、的两端点p0(x0,y0)和p1(x1,y1)。 2. 计算初始值x,y,e=-x,x=x0,y=y0 3. 绘制点(x,y),e更新为e+2y,判断e的符号: 3.1 若e0,则(x,y)更新为(x+1,y+1),e更新为e-2x 3.2 否则(x,y)更新为(x+1,y) 4. 当直线没有画完时,重复步骤3。否则结束。 中点画圆法步骤 1. 输入圆的半径r 2. 计算初始值d=1-r,x=0,y=r 3. 绘制点(x,y) 4. 判断d的符号。 4.1 若d0,则d更新为d+2x+3,(x,y)更新为(x+1,y); 4.2 否则,d更新为d+2(x-y)+5,(x,y)更新为(x+1,y

3、-1) 5. 当xy时,重复步骤3和4。否则结束。 窗口的作用:通过它从全局中取得局部 定义窗口:一般为矩形,在图形所在的用户坐标系中,以该矩形区域的左下角点和右上角点的坐标来确定矩形窗口的大小和位置。,Bresenham画圆算法 1. 考虑D(xp+1,yp-1)的初值D = 1+(r-1)2-r2 = 2-2r 2. D H H的增量=D + 2(x+1) +1 DH 0 = D D的增量 =D +2(x+1)-2(y-1)+2 3. D 0 DV = 2(D-x)-1 DV 0 = D D的增量 = D +2(x+1)-2(y-1)+2 DV 0 = V V的增量 =D - 2(y-1)

4、+1 4. D = 0 =D D的增量 = D +2(x+1)-2(y-1)+2 5. 最后考虑循环条件while(y=0) 裁剪 定义:把处于窗口内的部分图形正确无误地从整体图形中分离出来。 作用:将图形数据在指定的矩形窗口内部分“拾取”出来,以便屏幕显示或绘图仪绘图。 覆盖 定义:把处于指定窗口以内的图形去掉,而仅保留窗口以外的图形。 应用:在图形的某个区域内标注尺寸或其他有关的文字说明时,希望有一空白区域,最好采用覆盖方法。 通常,将交点分为实交点和虚交点。 Cohen-Sutherland代码裁剪算法步骤 1. 裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后进行

5、处理: 2. 若code1=0且code2=0,则该线段在窗口内,取之; 3. 若code1和code2按位进行逻辑与运算,其结果不为0,即:code1 & code20,则两端点必在窗口外的同一部位,弃之; 4. 以上两逻辑式都不成立,则还要具体分析,此时需要求出直线段与窗口边界的交点,在交点处把线段一分为二,其中必有一段完全在窗口以外,弃之。根据交点位置赋予新的四位编码,直到code1=0且code2=0为止。,Cohen-Sutherland算法用编码的方法实现了对完全可见和不可见直线段的快速接受和拒绝。比较适合两种情况:一是大部分线段完全可见;二是大部分线段完全不可见。 代码裁剪法和矢

6、量裁剪法都要计算直线段与窗口边界的交点,这不可避免地要进行大量地乘除运算,势必会降低程序的执行效率。而中点分割裁剪法却只需用到加法和除2运算。其中除2运算在计算机中可以简单地用右移一位来完成,从而提高算法的效率。 SutherlandHodgman逐边裁剪法 用户域:用户用来定义设计对象的实数域统称为用户域或用户空间。 窗口区:在计算机图形学中,将在用户坐标系中需要进行观察和处理的一个坐标区域称为窗口(Window)。即用户在用户域中指定的任意区域W。 屏幕域:图形设备上用来输出图形的最大区域。 视图区:将窗口映射到显示设备上的坐标区域称为视图区(Viewport)。任何小于或等于屏幕域的区域

7、都可定义为视图区V。 图形变换共同点:只需计算线段端点、圆心、半径等即可,不用计算所有点。 任何二维图形可用小直线段逼近,而线段可由始、末端点相连产生 二维图形可看成是一个点集 点的坐标可用行向量(x,y)或列向量表示 图形点集可表示成m2或2m 图形的变换 = 点的变换 性质 从属性 变换前直线或图形上的点,变换后直线或图形上均有一确定的点与之对应。 同素性 变换前是直线、曲线或点,变换后仍有直线、曲线或点与之对应。 平行性 两直线平行,变换后仍保持平行。 可用齐次坐标表示无穷远点 1 0 0:x轴上的无穷远点; 0 1 0:y轴上的无穷远点; 0 0 1:坐标原点。,主视图 将三维形体向X

8、OZ面(V面)作垂直投影(即正平行投影),得到主视图。 侧视图 将三维形体往YOZ面(W面)作垂直投影得到侧视图。 侧视图的投影变换 使W面绕Z轴正向旋转90 使W面沿X轴负向平移一段距离x0 俯视图 将三维形体向XOY面(H面)作垂直投影得到俯视图。 俯视图的投影变换 使H面绕X轴负向旋转90 使H面沿Z轴负向平移一段距离z0 正轴测投影的变换步骤 先绕Z轴正向旋转角 再绕X轴反向旋转角 将三维形体向XOZ平面(V面)作正投影得到正轴测投影的投影变换矩阵 斜平行投影 定义 投影平面不垂直于投影方向的平行投影。 特点 将正投影与正轴测投影的特点结合起来。能像三视图那样在主平面上进行距离和角度测

9、量,又能像正轴测投影那样同时反映物体的多个面,具有立体效果。 透视投影的特点: 视线是从视点出发,它是不平行的。(视点到投影面的距离有限) 在二维屏幕上表示物体三维空间位置的全部信息。 离观察者越近像越大,反之亦然。在远处的“汇聚点”处完全消失。 灭点:一束不平行于投影面的平行线的投影将汇聚成一点,称作灭点(Vanishing Point)。 灭点个数:透视投影的灭点个数有无限多个,不同方向的平行线在投影面上就能形成不同的灭点。 主灭点:平行于坐标轴的平行线在投影面上形成的灭点就是主灭点。 主灭点个数:因为有X、Y、Z三个坐标轴,所以主灭点个数最多有三个。,三维图形的表示方式 线框图:图上的线

10、条为形体的棱边 消隐图:图上只保留了形体上看得见的部分 真实感图形:能够表现形体的光照效果 消隐包括消除“隐藏线”和“隐藏面”两个问题。 在向V(XOZ)面投影时,与可见性有关; 在向H(XOY)面投影时,与可见性有关; 在向W(YOZ)面投影时,与可见性有关。 消隐图算法的特点 方法简单易行,可以有效地消去凸多面体的隐藏线,但对于由多个凸多面体组成的立体群,除了消除每个立体本身的隐藏线,还要在立体之间进行比较和运算,以消除立体之间相互遮挡而形成的隐藏线。 参数方程的优点 与坐标系的选取无关; 突出参数对因变量的影响; 不会出现斜率为无穷大的情况; 所产生的曲线 / 面有界限。 抛物线调配曲线

11、,计算方法简单,后面的计算不影响前面结果,节点处c1连续,c2不连续,在精度要求不高的情况下常被选用。 Bezier曲线的形状是通过一组多边折线(Bezier多边形或特征多边形)的各顶点唯一的定义出来的。 特征多边形的各顶点中,只有第一点和最后一点在曲线上,其余的点则用以定义曲线的导数、阶次和形状。 第一条边表示曲线在起点处的切线方向,最后一边表示曲线在终点处的切线方向。 曲线的形状趋向于特征多边形的形状,因此改变特征多边形的顶点和曲线的变化有着直观地联系。 性质: 曲线经过多边折线的起点和终点。 曲线在两端点处的切矢方向与特征多边形的第一条边和最后一条边相一致。 曲线在两端点处的 r 阶导数

12、只与 r1 个相临点有关,而与更远的点无关。,对称性:若保持原Bezier曲线全部顶点pi位置不变,次序颠倒,新的特征多边形的顶点pi*pn-i,(i0,1,n),则新Bezier曲线形状不变,走向相反。 正性: Bi,n(t)0,t0,1 凸包性: Bi,n(t) = 1,t 0,1 问题: 一旦确定特征多边形的顶点数n1,就决定了所定义的Bezier曲线的阶次是n次。 当顶点数n较大时,曲线的阶次高,多边形对曲线形状的控制将大为减弱。 因为所定义的曲线在t0,1内的任何一点均要受到全部顶点的影响,是“整体逼近”,所以改变任一顶点的位置,都对整条曲线产生影响。 曲线拼接需要附加条件,不太灵活

13、 B样条曲线 优点 保持原Bezier曲线的优点,用n次B样条基函数代替伯恩斯坦基函数Bi,n(t),构造了B样条曲线。 可以对曲线进行局部修改; 对特征多边形更逼近; 多项式次数降低。 二次B样条曲线段的起点位于B样条特征多边形第一边中点处,起点的切矢量即为第一边的走向。 曲线段的终点位于第二边中点处,终点的切矢量即为第二边的走向。 曲线段的中点正是C(0)与C(1)连线的中点m与第二点pi+1的连线的中点,在此处的切线平行于线段C(0)C(1)。 三次B样条曲线段的起点位于三角形pipi+1pi+2底边pipi+2的中线pi+1pm上,并距pi+1点的1/3处。 三次B样条曲线段的起点的切

14、矢量平行于pi+2pi。 三次B样条曲线段的终点的切矢量平行于pi+3pi+1。 三次B样条曲线段的起点的二阶导数等于中线pi+1pm的二倍。,7,第2章 光栅图形扫描转换算法,线宽与线型的处理 线画图元的属性控制 任何影响图元显示方法的参数被称为属性参数 颜色和大小等属性参数确定图元的基本特性 其它则指出在特定条件下怎样显示图元 将属性选择加入图形软件包的方法 为每个输出图元功能扩充相关的属性表来包含合适属性 为生成一个输出图元,系统要检测相关属性并使用当前属性设置调用该显示程序。 线画图元的基本属性有线型、宽度和颜色。在一些软件包中,线可用选择的笔或刷来显示。 线型 线型属性包括实线、虚线

15、和点线等。通过设置实线段的长度和间距来修改画线算法以生成各种类型的线。 段长度和中间空白段的像素数目可用像素掩模指定。 像素掩模是包含数字0和1的串,指定沿线路径哪些位置要画。 用固定数目像素来划线会因斜率变化而产生在不同线方向生成不等长的划线的现象。保持划线等长的方法: 按照线斜率来调整实心段和中间空白段的像素数目。 将划线看作单独的线段,将每条划线的端点坐标定位后,调用沿划线路径计算像素位置的画线程序。 可通过添加“线帽”来调整线端的形状以给出更好的外观。 方帽:通过调整所构成平行线的端点位置,使粗线的显示具有垂直于线段路径的正方形端点。假如指定线的斜率为m,那么粗线的方端的斜率为-1/m

16、。 圆帽:通过对每个方帽添加一个填充的半圆而得到。圆弧的圆心在线的端点其直径与线宽度相等。 突方帽:简单地将线各段向两头延伸一半线宽并添加方帽。,8,第3章 二维图形裁剪,区域码的各位指出端点对于裁剪窗口的四个相对坐标位置:左、右、下、上。 位1(D0):左 位2(D1):右 位3(D2):下 位4(D3):上 任何位赋值为1,代表端点落在相应的位置上,否则该位置为0。 根据该编码规则,窗口及其延长线所构成的9个区域的编码如图所示。,Cohen-Sutherland代码裁剪算法,0000,1001,1000,1010,0001,0101,0010,0100,0110,yt,yb,xl,xr,D

17、3D2D1D0,Cohen-Sutherland代码裁剪算法 裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后进行处理: 若code1=0且code2=0,则该线段在窗口内,取之; 若code1和code2按位进行逻辑与运算,其结果不为0,即:code1 & code20,则两端点必在窗口外的同一部位,弃之; 以上两逻辑式都不成立,则还要具体分析,此时需要求出直线段与窗口边界的交点,在交点处把线段一分为二,其中必有一段完全在窗口以外,弃之。根据交点位置赋予新的四位编码,直到code1=0且code2=0为止。 对于端点坐标为(x1,y1)和(x2,y2)的直线,与左、右边

18、界交点的y坐标可以这样计算: 与上、下边界交点的x坐标可以这样计算: LiangBarsky算法 x = x1 + u . (x2 - x1) = x1 + x . u y = y1 + u . (y2 - y1) = y1 + y . u0u1 令:p1 = -xq1 = x1 xl p2 = xq2 = xr x1 p3 = -yq3 = y1 yb p4 = yq4 = yt y1 如果这个不等式取等号,u对应线段和四条边的交点。 1.,输入直线段的两端点坐标(x1,y1)、(x2,y2),以及窗口的四条边界坐标:xl、xr、yb和yt。 若x=0,则p1=p2=0,此时进一步判断是否满

19、足q10或q20。若满足,则该直线段不在窗口内,算法转7结束。否则,满足q10且q20,则进一步计算umax和umin。,LiangBarsky算法,若y=0,则p3=p4=0,此时进一步判断是否满足q30或q40。若满足,则该直线段不在窗口内,算法转7结束。否则,满足q30且q40,则进一步计算umax和umin。,若上述两条均不满足,则有pk0(k=1,2,3,4), 此时计算umax和umin: 求得umax和umin后,进行判断:若umaxumin,则直线段在窗口外,算法转7结束。若umaxumin,利用直线参数方程求得直线段与窗口的两实交点坐标。,其中,,边界裁剪算法,平移变换 比例

20、变换 旋转变换,二维图形的几何变换,绕z轴旋转,绕y轴旋转,绕x轴旋转,三维图形几何变换,沿x方向错切,当g=0时,错切平面离开y轴,沿x方向移动dy距离(沿x轴含y的错切);当d=0时,错切平面离开z轴,沿x方向移动gz距离(沿x轴含z的错切)。,沿y方向错切,当h=0时,错切平面离开x轴,沿y方向移动bx距离(沿y轴含x的错切);当b=0时,错切平面离开z轴,沿y方向移动hz距离(沿y轴含z的错切)。,沿z方向错切,当f=0时,错切平面离开x轴,沿z方向移动cx距离(沿z轴含x的错切);当c=0时,错切平面离开y轴,沿y方向移动fy距离(沿z轴含y的错切)。,将物体绕平行于某坐标轴的轴旋转

21、,可通过下列变换序列来得到所需旋转矩阵: 平移:使物体的旋转轴和与之平行的某一坐标轴重合; 旋转:对该坐标轴完成指定的旋转; 逆平移:将物体的旋转轴移回原位置。,三维图形几何变换,三维图形投影变换,平面几何投影的分类,15,第5章 三维图形变换和生成,三维图形投影变换正轴测投影, x y z 1 = x y z 1 T 1 0 0 1 T = cos 0 -sinsin 1 0 1 0 1 T = -sin 0 -cossin 1 0 0 1 1 T = 0 0 cos 1 则轴向的变形系数分别为: a = (cos2+sin2sin2) b = (sin2+cos2sin2) c = cos

22、,16,第5章 三维图形变换和生成,三维图形投影变换正轴测投影,T等 =,=,17,第6章 投影图的消隐,消除隐藏线算法,举例。设S(1,1,2),A(2,0,0),B(1,2,0),C(0,0,0) SAB:E 20 SBC:E 20,18,第7章 曲线和曲面,p(t)TMB 称为二次贝塞尔(Bezier)曲线表达式。 注:一次贝塞尔表达式 p(t)p0(p1p0)t(1t)p0tp1t 1,常用的参数曲线 抛物样条曲线,19,第7章 曲线和曲面,pi+1(t)(12t)si(t0.5)2tsi+1(t),(t0,0.5,i1,2,m3),pi+1(t) t3 t2 t 1, TMB,常用的

23、参数曲线 抛物样条曲线,20,第7章 曲线和曲面,证明:抛物线调配曲线c1连续,c2不连续。 pi+1(t)(-12t28t1)pi(36t220t)pi+1(-36t216t1)pi+2(12t24t)pi+3 pi+3pi+1 pi+2(t)(-12t28t1)pi+1(36t220t)pi+2(-36t216t1)pi+3(12t24t)pi+4 pi+3pi+1 pi+1(0.5)pi+2(0) 即c1连续,常用的参数曲线 抛物样条曲线,21,第7章 曲线和曲面,pi+1(t)(-24t8)pi(72t20)pi+1(-72t16)pi+2(24t4)pi+3 -4pi16pi+120

24、pi+28pi+3 pi+2(t)(-24t8)pi+1(72t20)pi+2(-72t16)pi+3(24t4)pi+4 8pi+120pi+216pi+34pi+4 pi+1(0.5)pi+2(0)即c2不连续,常用的参数曲线 抛物样条曲线,22,第7章 曲线和曲面,Bezier曲线的矩阵表示 一次Bezier曲线 n1时 C(t)p0B0,1(t)p1B1,1(t) B0,1(t)1!/(0!1!) t0(1t)11t B1,1(t)1!/(1!0!) t1(1t)0t,一次Bezier曲线是连接两点的直线段。,常用的参数曲线 Bezier曲线,23,第7章 曲线和曲面,二次Bezier曲线 n2时 C(t)p0B0,2(t)p1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论