CADCAM第五章图形技术基础.ppt

上传人:za****8 文档编号:15798761 上传时间:2020-09-06 格式:PPT 页数:65 大小:7.45MB
返回 下载 相关 举报
CADCAM第五章图形技术基础.ppt_第1页
第1页 / 共65页
CADCAM第五章图形技术基础.ppt_第2页
第2页 / 共65页
CADCAM第五章图形技术基础.ppt_第3页
第3页 / 共65页
点击查看更多>>
资源描述
第五章 图形技术基础,5.1 坐标系与坐标变换 5.1.1 坐标系 5.1.2 窗口与视区 5.1.3 窗口视区的变换 5.2 二维图形的裁剪 5.2.1 点的裁剪 5.2.2 直线段的裁剪 5.3 隐藏线和隐藏面的消除,5.1 坐标系与坐标变换-5.1.1 坐标系,坐标系分类: 赤道坐标系 地理坐标系 天球坐标系 直角坐标系 (笛卡尔坐标系),1,3,2,5.1 坐标系与坐标变换-5.1.1 坐标系,直角坐标系 (笛卡尔坐标系)分类:,世界坐标系 World Coordinate System 设备坐标系 Device Coordinate System 规格化设备坐标系 Normalized Device Coordinate System,数控立式铣床坐标系,世界坐标系(World Coordinate System),世界坐标系是最常用的坐标系,它是一个符合右手定则的直角坐标系,分为二维图形的坐标系和三维物体的坐标系。 世界坐标系是用来定义用户在二维或三维世界中的物体,因此也可以称作自然(全局)坐标系。理论上讲,世界坐标系是无限大且连续的,即它的定义域为实数域。,设备坐标系(Device Coordinate System),所有的图形输出设备,例如显示器、绘图仪,都有一个自身的坐标系,称之为设备坐标系或物理坐标系。 设备坐标系是一个二维平面坐标系,它的度量单位是像素(显示器)或步长(绘图机),因此它的定义域是整数域且是有界的。,o,x,例如: 分辨率为1024768的显示器的设备坐标(屏幕坐标)范围为:X向0-1023像素,Y向0-767像素;分辨率为640480的显示器的设备坐标范围为:X向0-639像素,Y向0-479像素。 绘图仪的步长为1m或10m; 这迫使应用程序与具 体的图形输出设备有 关,给图形和应用程 序的移植带来不便。,显示器,y,规格化设备坐标系(屏幕坐标系)(Normalized Device Coordinate System ),为了便于图形处理和定义视图区,我们引入一个与设备无关的规格化设备坐标系,采用一种无量纲的单位代替设备坐标,当输出图形的时候,再转换为具体的设备坐标(由相应的图形软件自动实现)。用户的图形数据经转换成规格化设备坐标系中的值,使应用程序与图形设备隔离开,增强了应用程序的可移植性。,规格化设备坐标系,世界坐标系,设备坐标系,设备变换,视窗变换,5.1.2 窗口与视区 窗口,窗口(Window) 在工程设计中,有时为了突出图形的某一部分,而将该部分单独的画出来,就是所谓的局部视图 如何将指定的局部视图从整体中分离出来:计算机图形学中提出了窗口这一概念 窗口是在世界坐标系中定义的确定显示内容的一个矩形区域,只有在这个区域内的图形才能在设备坐标系中输出,而窗口之外的部分则被裁掉(即窗口是用户在输入的图形上选定一个观察区域 ),窗口被定义在世界坐标系中,5.1.2 窗口与视区视区,视区(Viewport) 视区是在设备坐标系(通常是屏幕)中定义的一个矩形区域,用于输出窗口中的图形。视区决定了窗口中的图形要显示于屏幕上的位置和大小,即视区是在图形输出设备上用来复制窗口(全部或部分)内容的矩形区域。 视区是一个有限的整数域,它应小于等于屏幕区域,而定义小于屏幕的视区是非常有用的,这样可以在同一屏幕上定义多个视区,用来同时显示不同的图形的信息。,视区的定义,视区不变,窗口缩小或放大时: 视区里面显示的图形会相应放大或缩小,窗口不变,视区缩小或放大时: 视区里面显示的图形会相应缩小或放大,5.1.3 窗口与视区的变换,定义:将世界坐标系的坐标值转化为设备(屏幕)坐标系的坐标值,这就是窗口视区的变换,又称为规格化变换(Normalization Transformation),要将窗口内的点(xw,yw)映射到相应的视区内的点(xv, yv),需要进行以下步骤: 将窗口左下角点平移至世界坐标系的原点; 针对原点进行比例变换; 进行反平移。,窗 口,视 区,窗口中的点P和视区中的点P 的映射关系:,窗口与视区的规格化变换,从上述变换可以看出:,要想满屏显示窗口内容,上面的变换公式就变为:,不是窗口中的内容不会在视区中出现; 假如要使图象不失真,应使窗口的长与宽之比等于视区的长与宽之比;,原照片:窗口,17071925像素,1925,1707,把这张照片作为电脑的桌面,而电脑的分辨率为1280800像素,选择“平铺”操作之后,发生失真。,800,1280,为了不失真,按照电脑分辨率的比例选择了原照片的一部分。,窗口一,视区,失真,窗口二,视区,DCS,NDCS,WCS,WCS,从应用程序得到 图形的世界坐标,对窗口区 进行裁剪,窗口区到视图区 的规格化变换,在图形设备 上输出图形,图形输出流水线,视图区从规格化坐标系 到设备坐标系的变换,5.2 二维图形的裁剪,通过定义窗口和视区,可以将图形的某一部分显示于屏幕上的指定位置,这不仅要进行上述的窗口视区变换,更重要的是必须要正确识别图形在窗口内部分(可见部分)和窗口外部分(不可见部分),以便把窗口内的图形信息输出,而窗口外的部分则不输出。我们把这种选择可见信息的方法叫做裁剪(Clipping),左图:多边形被裁剪前 右图:多边形被裁剪后,裁剪是确定场景或画面中位于给定区域(2D或3D裁剪窗口)之内的部分 裁剪还可用于图形反走样、隐藏线、隐藏面、阴影等算法中 裁剪推广应用: 多面体对多面体的裁剪,实体造型系统中执行布尔运算 在窗口系统中复制、移动或删除画面中某一部分(Cut-Copy-Paste),5.2.1 点的裁剪,判断点的可见性可以用下面简单的不等式, 若点 满足: 则点 为可见(在窗口内),否则不可见(在窗口外)。,由点的裁剪方法我们会想到另外一种最简单的方法逐点比较法,即把图形离散为点,然后逐点判断是否满足上面的不等式。若满足,则为可见点,在窗口内;否则就在窗口外,被裁剪掉。 从理论上讲这是一种万能裁剪法,但是实际上这种方法没有实用价值,因为这种方法的速度太慢,同时使得裁剪出来的点列不再保持原来图形的画线序列,因而给图形输出带来困难。,5.2.2 直线段的裁剪,直线段与窗口的位置关系有如下几种(根据直线的两个端点): 直线段的两个端点在窗口内; 直线段的两个端点在窗口外,且与窗口不相交;,直线段的两个端点在窗口外,但与窗口相交; 直线段一个端点在窗口内,一个端点在窗口外。,编码裁剪算法原理: 由于矩形窗口是凸多边形,因此一条直线段的可见部分最多为一段,因此可以通过判断两个端点的可见性来确定直线段的可见部分。 每一线段或者整个位于窗口内,或者整个位于窗口外,或者被窗口分割可以很快地舍弃其中的一部分。,如果直线的两个端点都在窗口内(黑色),这样的直线是完全可见的; 如果直线的两个端点都在窗口外,并且是在窗口某边框的同一侧(蓝色),这样的直线是完全不可见的,剔除即可; 如果直线的两个端点都在窗口外,并且不在窗口的同侧(绿色),这时要分析直线与窗口的交点的性质; 如果直线的一个端点在窗口内,一个端点在窗口外(紫色),求出直线与窗口的交点,则该交点和窗口内的线段端点是新的可见线段的两个端点。,线段的裁剪,编码裁剪算法的分区代码 将窗口边界延长,把平面划分成9个区,每个区用4位二进制代码表示; 线段的两个端点按其所在区域付与对应的代码,代码意义如下: 第1位:如果端点在窗口左边界的左侧则为1,否则为0; 第2位:如果端点在窗口右边界的右侧则为1,否则为0; 第3位:如果端点在窗口下边界的下侧则为1,否则为0; 第4位:如果端点在窗口上边界的上侧则为1,否则为0;,将窗口边界延长,把平面划分成9个区,每个区用4位二进制代码表示,第1位:如果端点在窗口左边界的左侧则为1,否则为0,第2位:如果端点在窗口右边界的右侧则为1,否则为0,第3位:如果端点在窗口下边界的下侧则为1,否则为0,第4位:如果端点在窗口上边界的上侧则为1,否则为0,5.2.2 直线段的裁剪,窗口边界上的代码(粉色)和窗口内的代码一致,均为0000,包括窗口的四个顶点,窗口延长线上编码的确定,红色:1000 黄色:0100 绿色 :0001 蓝色:0010,0000,0001,0101,1001,1000,0100,1010,0010,0110,编码裁剪算法步骤,两个端点位于窗口延长线同一侧,则它们的四位代码按位与一定不为零;反之,必为零。,根据直线的两点式公式,得到直线方程:,改写为:,所以左交点 pl 的坐标为:,直线与窗口左边界交点坐标的求取:,编码裁剪算法中直线与窗口边界交点坐标的求取,根据直线的两点式公式,得到直线方程:,改写为:,所以右交点 pr 的坐标为:,直线与窗口右边界交点坐标的求取:,根据直线的两点式公式,得到直线方程:,改写为:,所以下交点 pd 的坐标为:,直线与窗口下边界交点坐标的求取:,根据直线的两点式公式,得到直线方程:,改写为:,所以上交点 pt 的坐标为:,直线与窗口上边界交点坐标的求取:,C2=0000,C1=1000,C1=0000,编码裁剪算法流程图,左交点,右交点,下交点,上交点,左交点,右交点,下交点,上交点,5.3 图形消隐技术,左:线框图 中:消隐图 右:真实感图,5.3 图形消隐技术,人不能一眼看到一个三维物体的全部表面。从一个视点去观察一个三维物体,必然只能看到该物体表面上的部分点、线、面,而其余部分则被这些可见部分遮挡住。如果观察的是若干个三维物体,则物体之间还可能彼此遮挡而部分不可见。因此,如果想有真实感地显示三维物体,必须在视点确定之后,将对象表面上不可见的点、线、面消去。执行这一功能的算法,称为消隐算法。,5.3 图形消隐技术,消隐算法的功能:消隐算法将物体的表面分解为一组空间多边形,研究多边形之间的遮挡关系(消除二义性),5.3 图形消隐技术,Southerland根据消隐空间的不同,将消隐算法分为三大类: 对象空间方法(Object Space Methods):通过分析消隐对象的三维特性之间的关系来确定其是否可见。例如,将三维平面作为分析对象,将场景中的每一个面与其它的面进行比较,通过比较各平面的参数来确定它们的可见性,求出所有点、边、面的遮挡关系。 算法描述如下: for(场景中的每一个物体) 将该物体与场景中的其它物体进行比较,确定其表面的可见部分;显示该物体表面的可见部分;,图像空间方法(Image Space Methods):图像空间的方法是将对象投影(二维)后分解为像素,以窗口内的每个像素为处理单元。确定在每一个像素处,场景中的k个物体哪一个距离观察点最近,从而用它的颜色来显示该像素。 算法描述如下: for(窗口中的每一个像素) 确定距视点最近的物体,以该物体表面的颜色来显示像素;,画家算法:假设一个画家要作一幅画,画中远处有山,近处有房子,房子的前面有树。画家在纸上先画远处的山,再画房子,最后画树,通过这样的作画顺序正确地处理了画中物体的相互遮挡关系。 先将画面中的物体按其距离观察点的远近进行排序,结果存放在一张线形表中。距观察点远者称其优先级高,放在表头,距观察点近者称其优先级低,放在表尾,这张表称为深度优先级表。 然后按照从表头到表尾的顺序逐个绘制物体。由于距观察者近的物体在表尾最后画出,它覆盖了远处的物体,最终在屏幕上产生了正确的遮挡关系。,画家算法中的交叉覆盖和循环覆盖多边形的优先级考虑:解决深度优先级冲突的排序算法,图(a)、(b)均有交叉覆盖或循环遮挡的情况: 在图(a)中,P在Q的前面,Q在R的前面,而R反过来又在P的前面; 在图(b)中,P在Q的前面,而Q又在P的前面。 上述两种情况均无法直接建立确定的深度优先表。,5.3 图形消隐技术,从应用的角度看,有两类消隐问题: 线消隐(Hidden-line),消除的是物体上不可见的线段,它用于线框图; 面消隐(Hidden-surface),消除的是物体上不可见的面,它用于填色图。,线消隐,面消隐,面消隐,中望ZWCAD2008专业版:消隐和着色,随堂作业:,某点(x, y)在窗口内的充分必要条件是什么?,已知窗口左下角坐标(50,50),右上角坐标(400,400),直线的端点坐标P1(40,100)和P2(500,420), 结合编码图示,求出P1和P2所在区域的分区代码C1和C2; 试用CohenSutherland直线编码裁剪算法中的直线与窗口边界求交公式求出直线P1P2 与窗口及窗口延长线上的所有交点。,答案:,如果裁剪窗口的左下角坐标为(xmin , ymin),右上角坐标为(xmax , ymax),某点(x , y)在窗口内的充分必要条件是: xminxxmax yminyymax 如果上面两个不等式中任何一个不满足,则(x , y)位于窗口之外。,答案:, P1和P2所在区域的分区代码C1和C2分别为0001和1010,直线与窗口求交公式为:,则直线与窗口边界及窗口延长线上的所有交点如下:,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!