计算机图形学习题课.ppt

上传人:sccc 文档编号:6021257 上传时间:2023-09-15 格式:PPT 页数:50 大小:522.52KB
返回 下载 相关 举报
计算机图形学习题课.ppt_第1页
第1页 / 共50页
计算机图形学习题课.ppt_第2页
第2页 / 共50页
计算机图形学习题课.ppt_第3页
第3页 / 共50页
计算机图形学习题课.ppt_第4页
第4页 / 共50页
计算机图形学习题课.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《计算机图形学习题课.ppt》由会员分享,可在线阅读,更多相关《计算机图形学习题课.ppt(50页珍藏版)》请在三一办公上搜索。

1、2010计算机图形学习题课,主讲:刘喜指导老师:董兰芳,内容提要,1 重点知识回顾2 作业讲解3 提问,第一次作业,知识准备 1.1 图形的概念:计算机图形学的研究对象能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等等。1.2 图形的要素 几何要素:刻画对象的轮廓、形状等 非几何要素:刻画对象的颜色、材质等1.3 图形表示法 点阵表示:枚举出图形中所有的点,简称为图像。参数表示:由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)+属性参数(颜色、线型等)来表示,简称为图形。,第一次作业,三种类型的计算机图形软件系统:(1)用某种语言写成的子

2、程序包GKS(Graphics Kernel System),PHIGS,GL 便于移植和推广、但执行速度相对较慢,效率低(2)扩充计算机语言,使其具有图形生成和处理的功能如:Turbo Pascal、Turbo C,AutoLisp等。简练、紧凑、执行速度快,但不可移植(3)专用图形系统:效率高,但系统开发量大,可移植性差。练、紧凑、执行速度快,但不可移植,第一次作业,2.19 说明OpenGL核心库、OpenGL实用库、OpenGL实用工具包之间的区别。解:核心库用来描述图元属性、几何变换、观察变换和进行许多其它的操作,只包含与设备无关的函数,函数以gl为前缀。实用库包含用来生成复杂对象、

3、指定二维观察应用的参数、处理表面绘制操作和完成其它支持任务的函数,函数以glu为前缀。实用工具包包含大量用来管理显示窗口与屏幕窗口系统交互及生成某些三维形体的函数,提供与任意屏幕窗口系统进行交互的函数库,是与其它依赖设备的窗口系统之间的接口,函数以glut为头缀。、,第一次作业,2.22 解释术语“OpenGL显示回调函数”的含义。解:显示回调函数是程序员自己编写的关于显示窗口内容的函数,由glutDisplayFunc 作为显示窗口需要重新显示时引入的函数来注册。当一个窗口的图像层需要重新绘制时,GLUT将调用该窗口的的显示回调函数。,第二次作业,知识准备 1 画线算法:(1)DDA画线算法

4、:直接求交算法:划分区间0,1,dt=1/n,计算坐标,取整 复杂度:乘法+加法+取整 DDA增量算法:xi+1=x1+x*ti+1=xi+x*dt=xi+xinc yi+1=y1+y*ti+1=yi+y*dt=yi+yinc 复杂度:加法+取整 DDA算法缺点:需要进行浮点数运算,运行效率低,不便于用硬件实现,画线算法回顾,(2)Bresenham画线算法目标:消除DDA算法中的浮点运算dlowerdupper,取H点dlowerdupper,取L点dlower=dupper,选择H或L均可.Bresenham画线算法的特点:只包括整数的加法、减法和左移(乘2)操作,效率高,适合用硬件实现。

5、,画线算法回顾,(3)并行画线算法让每一个处理器处理一组像素,适用于系统中的处理器非常多的场合。给定一条线段,可以得到它的包围盒,包围盒中共有x*y个像素。让每个处理器处理一组像素,,画线算法回顾,中点画圆算法两种直接离散方法:离散点:x2+y2=R(x,sqrt(R2-x2)离散角度:x=Rcos y=Rsin缺点:计算量大。优点:效率高,只用到整数的加法、减法和左移,(乘2)运算,并且适合用硬件实现。,第二次作业,3.18 利用中点算法并考虑对称性,推导在区间-10 x10上,对下列曲线进行扫描转换的有效算法:y=1/12 x3解:注意避免浮点运算!曲线为奇函数,关于原点对称,只需考虑区间

6、0,10即可,区间-10,0可有对称性得到。定义曲线函数:F(x,y)=12y-x3,p1k=f(xk+1,yk+1/2),p2k=f(xk+1/2,yk+1)曲线的斜率k=dy/dx=x2/4,所以曲线的分界点为X=2。区域10,2,区域22,10从(0,0)开始以x方向取单位步长直到分界点处;然后转为以y方向取单位步长。每一步中,需要检测曲线的斜率值。,第二次作业,算法步骤如下:1 得到曲线的第一个点(0,0)。2 计算区域1中的决策函数初始值:P10=6-1=53 在区域1中的每个xk位置 p1k+1=p1k+12(yk+1+1/2)-12(yk+1/2)-3xk2-9xk-7 若p1k

7、0,增量=-3xk2-9xk-7,曲线的下一点为(xk+1,yk)若p1k0,增量=12-3xk2-9xk-7,下一点为(xk+1,yk+1)直到xk=24.区域2同理可得。5.确定第三象限的对称点。,第三次作业,知识准备-填充方法1 均匀着色方法:将图元内部像素置成同一颜色2 位图不透明:若像素对应的位图单元为1,则以前景色显示该像素;若为0,则以背景色显示该像素;3 位图透明:若像素对应的位图单元为1,则以前景色显示该像素;若为0,则不做任何处理。4 像素图填充:以像素对应的像素图单元的颜色值显示该像素。,填充方法回顾,基本问题:建立区域与图像间的对应关系1 建立整个绘图空间与图像空间的1

8、-1映射2 建立区域局部坐标空间与图像空间的1-1映射,填充方法回顾,边的连贯性:某条边与当前扫描线相交,也可能 与下一条扫描线相交;扫描线的连贯性:当前扫描线与各边的交点顺序 与下一条扫描线与各边的交点顺序可能相同或类似;区间连贯性:同一区间上的像素取同一颜色属性扫描线算法目标:利用相邻像素之间的连贯性,提高算法效率处理对象:非自交多边形(边与边之间除了顶点外无其它交点),填充方法回顾,基本原理(一条扫描线与多边形的边有偶数个交点)步骤(对于每一条扫描线):求交点交点排序交点配对,填充区段,第三次作业,4.30 修改扫描线算法,从而将任何指定的矩形填充图案应用到多边形内部,从所指定的图案位置

9、开始填充。解:方法1:假设填充图案行数为ny,列数为nx,指定的图案位置为(x0,y0)。前面的扫描线算法与通用扫描线填充算法类似(参考书上p159p162)。得到扫描线上的填充区域后,对于填充区域的每个像素(x,y),其对应的像素颜色即为填充图案位置((x-x0)mod nx,(y-y0)mod ny)的像素颜色。,第三次作业,方法2:先得到多边形的包围矩形,将填充图案根据指定位置平铺到整个包围矩形。根据扫描线填充算法,若像素需要填充,则取包围矩形中同一点的颜色填充。,基础知识回顾,提问:什么是走样和反走样?走样:用离散量(像素)表示连续的量(图形)而引起的失真,叫混淆或叫走样(aliasi

10、ng)反走样:在图形显示过程中,用于减少或消除走样现象 的方法。提高分辨率方法 非加权区域采样 加权区域采样,第四次作业,知识准备计算机图形学中的矩阵运算,3D观察变换,定义:要将预设场景的世界坐标描述经各种处理变换到一个或多个输出设备参照系来显示的过程。本质:笛卡尔坐标系的3D变换源头:原始模型形状-建模坐标输出:显示屏幕画面-窗口(屏幕)坐标,3D观察的形象描述,视点变换(对准场景),模型变换(放置模型),相反过程,模型视点变换的数学描述,模型坐标到世界坐标世界坐标到观察坐标 平移、缩放、旋转Opengl通过模型矩阵(Modeling Matrix)实现,简单例子,齐次坐标 第一列为MC中

11、x轴在WC中向量表示;第二列为MC中y轴在WC中向量表示;第三列为MC中原点在WC中坐标;,模型坐标系中的坐标为(1,1),世界坐标系中的坐标为(3,4),简单例子,将齐次矩阵作为变换矩阵,乘以MC中坐标,得WC中坐标,回顾理论课内容,三维平移,回顾理论课内容,三维旋转,绕x轴,绕y轴,绕z轴,回顾理论课内容,三维缩放,第四次作业,5.4 证明对于下列每个操作序列,矩阵相乘是可交换的:a)两个连续的旋转b)两个连续的平移c)两个连续的缩放,第四次作业,解:a)设两个旋转分别为R(a1)和R(a2),有,第四次作业,b)设两个平移分别为T(x1,y1)和T(x2,y2),有,第四次作业,c)设两

12、个缩放分别为S(x1,y1)和S(x2,y2),有,第四次作业,5.5 证明一致缩放和旋转形成可交换的操作对,但通常缩放和旋转不是可交换操作。解:设缩放为S(x,y),旋转为R(a),有,知识回顾,提问:平行投影与透视投影的区别?,第五次作业,补充题:证明OB旋转到平面OXZ的角度与在OYZ投影OB1旋转到Z轴上的OB3的角度是一样的。解:由长方体的性质易知:平面OBB1平面OB1B3,平面OB2B3平面OB1B3,所以B1OB3是平面OBB1与OB2B3的二面角,而两平面的交轴是X轴,所以平面OBB1上的任意点绕X轴旋转到达平面OB2B3上,经过的角度均为B1OB3。,第五次作业,5.34

13、设计三维对象相对于任选平面反射的程序。解:设该平面的方程为ax+by+cz+d=0,对于任意一点(x1,y1,z1),其反射点为(x2,y2,z2),有 中点在平面上:a(x1+x2)/2+b(y1+y2)/2+c(z1+z2)/2+d=0两点向量与平面法向量平行:(x2-x1)/a=(y2-y1)/b=(z2-z1)/c,第五次作业,求解上面三个方程,可以得到变换矩阵:,第六次作业,知识准备裁剪算法识别指定区域内或区域外图形部分的过程称为裁剪。裁剪的策略包括:1、先裁剪后扫描转换2、边扫描转换边裁剪,裁剪算法回顾,裁剪的类型:1、点的裁剪2、线段的裁剪3、区域的裁剪4、曲线的裁剪5、文字的裁

14、剪,第六次作业,6.6 讨论梁友栋-Barsky线裁剪算法中各种测试和交点参数u1,u2计算方法的原理。解:对端点为(x0,y0)和(xend,yend)的直线段,可以使用参数形式描述直线段:x=x0+ux y=y0+uy,其中,0=u=1.x=xend-x0,y=yend-y0.可以得到不等式:xwmin=x0+ux=xwmax ywmin=y0+uy=ywmax.这个不等式组可以表示成:upk=qk,k=1,2,3,4的形式。,第六次作业,令:P1=-x,q1=x0-xwminP2=x,q2=xwmax-x0P3=-y,q3=y0-ywminP4=y,q4=ywmax-y0假设裁剪窗口如下

15、:由上面的式子可得:x=0时,线段与边界1,2平行,y=0时,边界与3,4平行。,第六次作业,首先讨论线段与边界平行的情况,即pk=0;p1=0,平行于边界1,2,若q1=0,则x0=xwmin,线段可能在窗口内。p2=0,平行于边界1,2,若q2xwmax,线段一定在窗口外,若q2=0,则x0=0,线段才可能在窗口内。,第六次作业,pk!=0时:由于u要满足upk=qk/pk.又因为0=max(qk/pk|任意k满足pk=u1对于所有满足pk0的k,则有u0)令u2=min(1,qk/pk|任意k满足pk0)则u=u2.综上得,pk!=0时所得的条件为:u1=u=u2,第六次作业,综合pk=

16、0,pk!=0的情况知在窗口内的u应满足的条件如下:pk=0qk=0,条件1,pk!=0u1u2,所有u不满足条件2,线段全在窗口外3.若条件1成立,且u1=u2,则线段与裁剪窗口有交集,由于u1=u=u2,则裁剪点为A=(x0+u1x,y0+u1y),B=(x0+u2x,y0+u2y)A,B就是处在裁剪窗口内的线段的两个端点。,第七次作业,知识准备-Bezier样条曲线,46,Bezier样条曲线,给定空间n+1个控制点Pi(0in),利用n次Bernstein基函数Bi,n(t)作为调和函数,可以确定一条n次Bzier曲线,该曲线的参数方程为:,Bzier曲线的定义,Bezier样条曲线,Bzier曲线的性质 1.端点性质 2.端点切向量 3.对称性 4.凸包性 5.平面曲线的保型性 6.拟局部性,第七次作业,8.10 修改8.10节中的示例程序,使其显示任一使用xy平面上的四个输入控制点的三次Bezier曲线。,第七次作业,致谢与交流,ThanksEMAIL:,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号