《计算机图形学理论及应用技术 第7章图形操作.ppt》由会员分享,可在线阅读,更多相关《计算机图形学理论及应用技术 第7章图形操作.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第7章章 图图 形形 操操 作作 7.17.17.17.1 图形操作的形式化理论图形操作的形式化理论图形操作的形式化理论图形操作的形式化理论7.7.7.7.7.1.1 7.1.1 图形操作的性质图形操作的性质图形操作的性质图形操作的性质7.1.2 7.1.2 7.1.2 7.1.2 图形操作类结构图形操作类结构图形操作类结构图形操作类结构 7.1.3 7.1.3 图形操作的数学表示图形操作的数学表示图形操作的数学表示图形操作的数学表示 7.1.4 7.1.4 7.1.4 7.1.4 图形操作的图形操作的图形操作的图形操作的OCIOCIOCIOCI7.27.2 图形对象的运算操作图形对象的运算
2、操作图形对象的运算操作图形对象的运算操作7.2.1 7.2.1 几何图形的布尔运算几何图形的布尔运算几何图形的布尔运算几何图形的布尔运算7.2.2 7.2.2 7.2.2 7.2.2 点阵图形的布尔运算点阵图形的布尔运算点阵图形的布尔运算点阵图形的布尔运算 7.2.3 7.2.3 点阵图形的二进制布尔运算点阵图形的二进制布尔运算点阵图形的二进制布尔运算点阵图形的二进制布尔运算 7.37.3 图形对象的删除处理图形对象的删除处理图形对象的删除处理图形对象的删除处理 7.3.1 7.3.1 图形删除的种类和处理策略图形删除的种类和处理策略图形删除的种类和处理策略图形删除的种类和处理策略7.3.2
3、7.3.2 7.3.2 7.3.2 图形删除的实施方法图形删除的实施方法图形删除的实施方法图形删除的实施方法7.47.4 图形的裁剪处理图形的裁剪处理图形的裁剪处理图形的裁剪处理7.4.1 7.4.1 图形裁剪的基本原则图形裁剪的基本原则图形裁剪的基本原则图形裁剪的基本原则 7.4.2 7.4.2 线段裁剪方法及算法描述线段裁剪方法及算法描述线段裁剪方法及算法描述线段裁剪方法及算法描述 7.4.3 7.4.3 多边形的裁剪方法多边形的裁剪方法多边形的裁剪方法多边形的裁剪方法 7.4.4 7.4.4 三维图形的裁剪处理三维图形的裁剪处理三维图形的裁剪处理三维图形的裁剪处理 7.57.57.57.
4、5 区域填充算法区域填充算法区域填充算法区域填充算法 7.5.1 7.5.1 区域填充的基础知识区域填充的基础知识区域填充的基础知识区域填充的基础知识 7.5.2 7.5.2 7.5.2 7.5.2 扫描线填色算法扫描线填色算法扫描线填色算法扫描线填色算法 7.5.3 7.5.3 7.5.3 7.5.3 种子填色算法种子填色算法种子填色算法种子填色算法 习题习题习题习题7 7 7 7 7.1图形操作的形式化理论7.1.1图形操作的性质图形操作是指针对图形对象的操作。与其他操作相比,图形操作具有以下5个特性。1.图形操作有两个级别图形操作有两个级别(1)一级图形操作的特点(2)二级图形操作的特点
5、2.面向图形对象的操作具有可视性面向图形对象的操作具有可视性(Visibility)3.面面向向图图形形对对象象操操作作具具有有依依赖赖关关系系(Depend on Relation)和和多多态态性性(Polymorphism)4.面向图形对象的操作具有继承性面向图形对象的操作具有继承性(Inheritance)(1)图形操作方法继承性(2)图形操作处理继承性5.面向图形对象操作具有约束性面向图形对象操作具有约束性(Restriction)7.1.2图形操作类结构1.特殊的图形操作特殊的图形操作特殊的图形操作定义为:CGO=Inheritance,Reference,Portability,D
6、electability,.2.专门的图形操作专门的图形操作专门的图形操作定义为:SGO=Constraint,UserGraphicOperation,.3.高级图形操作高级图形操作高级图形操作定义为:HLD=Realism Display,Fitting,Recognizing,.4.复杂图形运算5.图形运算图形运算6.图形复合操作图形复合操作图形复合操作定义为:CO=Reproduce,Reference,Repeat,CompoundTransformation,.7.图形维护操作图形维护操作图形维护操作包括如下内容:GMO=Creating,Deleting,Updating,Mem
7、orizing,.图形维护操作(GraphicMaintenanceOperation)包括图形的创立(Creating)、删除(Deleting)、修改(Updating)和存贮(Memorizing)等有关操作。8.平面图形变换和立体图形变换平面图形变换和立体图形变换7.1.3 图形操作的数学表示图形操作的数学表示1.图形操作的结果分析图形操作的结果分析图形操作通过消息引发和传递,图形操作会产生以下结果:(1)图形操作可以产生新图形对象或删除已有的图形对象(2)图形操作会在输出设备上输出图形或文本信息(3)图形操作可能修改图形对象或图形类的数据或参数(4)图形操作可为其他操作提供数据或激发
8、其他图形操作2.图形操作的数学表示图形操作的数学表示7.1.4 图形操作的图形操作的OCI方法模型方法模型7.2 图形对象的运算操作图形对象的运算操作7.2.1 几何图形的布尔运算几何图形的布尔运算1.几何图形的联合几何图形的联合(Union)运算运算2.2.平面图形的差集平面图形的差集(Subtraction)运算运算3.平面图形的交集(Intersection)运算7.2.2点阵图形的布尔运算1.点阵图形的或运算2.2.点阵图形的差运算3.3.点阵图形的交运算4.4.点阵图形的异或运算点阵图形的异或运算5.5.点阵图形的非运算7.2.3 点阵图形的二进制布尔运算点阵图形的二进制布尔运算1.
9、点阵图形的拷贝运算点阵图形的拷贝运算2.点阵图形的二进制异或运算点阵图形的二进制异或运算3.点阵图形的二进制或运算点阵图形的二进制或运算4.点阵图形的二进制与运算点阵图形的二进制与运算5.点阵图形的二进制非运算点阵图形的二进制非运算7.3 图形对象的删除处理图形对象的删除处理7.3.1 图形删除的种类和处理策略图形删除的种类和处理策略1.删除图形画面或删除图形本体删除图形画面或删除图形本体2.对二级图形对象的永久性删除和临时性删除对二级图形对象的永久性删除和临时性删除(1)永久性删除二级图形对象(2)临时性删除二级图形对象3.立即指出删除和过后指出删除立即指出删除和过后指出删除(1)随机提出删
10、除请求的方法(2)系统事先安排删除的方法7.3.2 图形删除的实施方法图形删除的实施方法1.删除一级图形对象的方法删除一级图形对象的方法可以采用以下4种方法之一处理:1)用背景色作为图形的颜色属性再把图形显示一遍。2)原图形对象经过一定的图形运算(例如异或运算)后,再输出一遍。3)将要删除的图形对象加上删除标志后,在当前页全屏幕清屏后或在隐藏页,从头到尾重新执行图形对象的每一个图形操作。4)图形输出前保存原来区域的图像点阵输出,在必要时,用原图像点阵数据恢复图形。2.删除二级图形对象的方法删除二级图形对象的方法设被删的图形对象已经显示,删除图形对象需要4个步骤:1)通过检测确认要删除的图形对象
11、,并在图形库中对它们进行逻辑删除(加删除标志)。2)选择删除其一级图形对象的方法并加以实施。3)对图形库搜索,查找引用或调用被删图形的复合图形对象,并解除其引用关系。如果必要可修改其后继实例的起始位置参数,以使对象被删后仍保持原图的形状。4)对图形库中的被删对象进行物理删除操作,删除这些图形对象的数据记录。7.4 图形的裁剪处理图形的裁剪处理7.4.1 图形裁剪的基本原则图形裁剪的基本原则1.图形裁剪的基本算法图形裁剪的基本算法2.图形裁剪处理内容图形裁剪处理内容3.裁剪处理要求裁剪处理要求7.4.2 线段裁剪方法及算法描述线段裁剪方法及算法描述1.线段裁剪的对分法线段裁剪的对分法2.线段裁剪
12、的符号法线段裁剪的符号法7.4.3 多边形的裁剪方法多边形的裁剪方法L1L2A4B2B3B4(Xmax,Ymax)L4A1A3B1A2L3(Xmin,Ymin)图7-5多边形裁剪例子例:有如图7-5所示的窗口和多边形,要求按窗口对该多边形进行裁剪处理。解:裁剪的4个区域为:L1Xmin;L2Xmax;L3Ymin;L4Ymax.多边形顶点为:A1,A2,A3,A4,A5.1)对区域L1Xmin测试。输入点:A1,A2,A3,A4,A5.输出点:A1,A2,B1,B2,A5.2)对区域L2Xmax测试。输入点:A1,A2,B1,B2,A5.输出点:A1,A2,B1,B2,A53)对区域L3Ymi
13、n测试。输入点:A1,A2,B1,B2,A5.输出点:A1,A2,B1,B2,A5.4)对区域L4Ymax测试。该步测试的输出点是裁剪结果多边形的顶点。输入点:A1,A2,B1,B2,A5.输出点:B4,A1,A2,B1,B3.下面是用C语言编写的实现多边形剪切LXmin区域测试的程序段。在下面的程序段中,输入点有n个,它们的坐标分别在xi和yi中;输出点m个,它们的坐标放在x1i和y1i中。程序中使用两个状态变量t1和t2,用于表示被测线段两端点的检测结果。对于另外三个区域的测试程序的编写方法,与下例相仿。/输入测试点n=m;m=0;for(i=1;i=n;i+)xi=x1i;yi=y1i;
14、xn+1=x11;yn+1=y11;/开始测试,求输出点for(i=1;i=xmin)t1=0;elset1=1;if(xi+1=xmin)t2=0;elset2=1;if(t1+t2=1)y=(xmin-xi)/(xi+1-xi)*(yi+1-yi)+yi;x=xmin;if(t1=0)m=m+1;x1m=xi;y1m=yi;m=m+1;x1m=x;y1m=y;elseif(t1=0)m=m+1;x1m=xi;y1im=yi;7.4.4 三维图形的裁剪处理三维图形的裁剪处理1.三维图形的剪切参数三维图形的剪切参数(1)三维图形的剪取体(2)三维图形的剪取面2.三维剪切处理流程3.判断点在剪取
15、体内的方法判断点在剪取体内的方法4.三维线段的裁剪方法三维线段的裁剪处理的基本原则是:1)如果被剪线段的两端点都在剪取体中,则该线段完全可见;2)如果它的两端点都在剪取体的外部同侧,则线段完全不可见;3)如果线段的一个端点在剪取体内,另一个端点在剪取体的外部,或两端点在剪取体外部的不同侧,则该线段为部分可见。7.5 区域填充算法区域填充算法7.5.1 区域填充的基础知识区域填充的基础知识7.5.2 扫描线填色算法扫描线填色算法1.算法思想算法思想2.需要解决或改进的问题3.扫描线填色程序扫描线填色程序 7.5.3 种子填色算法种子填色算法习题习题77.1设有两个半径都为5厘米的圆A和B,其圆心
16、位于同一平面,A比B的圆心靠左5厘米。A用横线填充,B用竖线填充,画出执行图形布尔运算A+B、B+A、AB、BA和AB的示意图。7.2试述图形裁剪的算法思想和处理要求。7.3简述多边形裁剪的原理。7.4画一个任意六边形和与其它部分重叠的窗口,写出对四个窗口边裁剪处理的输入和输出点,并画出裁剪前、后图形的示意图。7.5设平行投影向量为(2,3,5),窗口坐标为(20,50,50,100),写出平行投影剪取的上顶平面方程、下底平面方程、左侧面和右侧面的数学方程。7.6设透视投影中心为(10,50,-30),窗口坐标为(20,50,50,100),写出透视投影剪取的上顶平面方程、下底平面方程、左侧面和右侧面的数学方程。7.7试述扫描线填色法及需要改进之处。