包装cad中文教程.ppt
1,2.1基本概念2.2图形生成的过程2.3图形编辑的原理,图形生成的基本原理,第二章,2,2.1基本概念,2.1.1 用户坐标系和设备坐标系2.1.2 窗口和视口2.1.3 裁剪和变换,3,2.1.1 用户坐标系和设备坐标系,世界坐标系(WC),设备坐标系(DC),规格化设备坐标系(NDC),World Coordinate System,Normalized DeviceCoordinate System,Device Coordinate System,4,*世界坐标系*,世界坐标系可以是二维的,也可以是三维的。世界坐标系各坐标轴的取值范围为整个实数域。世界坐标系是与设备无关的坐标系,它不受输入输出有效幅面的限制。,世界坐标系有右手坐标系(图a)和左手坐标系(图b)之分。,5,*设备坐标系*,设备坐标系都是 二维的。设备坐标系的数据类型只能是整型。设备坐标系坐标轴的取值范围受输出设备有效幅面的限制。设备坐标系的坐标原点因设备而异。,6,*世界坐标系和设备坐标系*,7,*典型设备坐标系*,坐标原点,坐标刻度值取屏幕分辨率的刻度值,坐标原点,有些选在输出幅面的中心。,有些还可以让用户自己选择呢!,8,*规格化设备坐标系*,规格化设备坐标系是介于世界坐标系与设备坐标系之间的一种坐标系,它也是与设备无关的坐标系,约定坐标轴的取值范围是从0.0到1.0。用户坐标系的取值范围因实际问题而异,而设备坐标系的取值范围又因设备而异,所以,引入规格化设备坐标系可提高图形应用程序的可移植性。,Y,X,O,1.0,1.0,9,2.1.2 窗口和视口,在用户坐标系中预先选定的将产生图形显示的区域,窗口,视口,是在图形设备上定义的区域,用于输出所要的图形和文字。视口的大小可以小于或等于屏幕输出域。,也称作视区,10,O,X,Y,(Xw1,Yw1),(Xw2,Yw2),*窗口的定义*,设定窗口的位置和大小来选取图形的方法称为开窗。,一般地把窗口定义成矩形,该矩形区域的左下角点和右上角点的坐标用来确定矩形窗口的大小和位置。,11,*视口的定义*,O,X,Y,(Xv1,Yv1),(Xv2,Yv2),通常把视区定义成与窗口同样纵横比的矩形,以视区域的左下角点和右上角点的坐标来确定矩形窗口的大小和位置。,12,将窗口区的图形输出到视区中,一般需要两步来完成。,2.1.3 裁剪和变换,图形裁剪,在用户坐标系下,用窗口的边框将窗口之外的图形裁剪掉,坐标变换与生成,使窗口内图形上的各点坐标成为设备坐标系下视区内的坐标,并完成裁减后的图形输出,13,*图形的裁剪*,14,*窗口向视区的变换*,O,X,Y,(Xv1,Yv1),(Xv2,Yv2),(Xw1,Yw1),(Xw2,Yw2),由于窗口和视区是在不同的坐标系中定义的,因此,在把窗口中的图形信息送到视区去输出之前,必须把用户坐标系的坐标值转化为设备(屏幕)坐标系的坐标值,这个变换即是窗口视区变换。,窗口与视区的变换可以归结为坐标点的变换。,15,视口与窗口水平和垂直方向的比例因子分别为:Sx=Sy=窗口内点Pw映射到视区内Pv的计算公式为:Pvx=Vl+Sx(Pwx Wl)Pvy=Vt-Sy(Pwy Wb),*窗口与视区的变换公式*,16,当视区大小不变时,窗口缩小或放大时,则显示的图形会放大或缩小;当窗口大小不变时,视区缩小或放大时,则显示的图形会缩小或放大;当窗口与视区大小相同时,则显示的图形大小比例不变。,若视区纵横比不等于窗口的纵横比时,则显示的图形会有失真现象。,窗口,视区,*讨论*,17,2.2 图形生成的过程,(1)定义图形。根据用户点取的菜单调用相应的绘制几何图形的命令,提示并等待用户输入数据。(2)用当前视口所对应的窗口裁剪图形。(3)将裁剪后的图形变换到屏幕坐标系的视口。(4)写入视口所对应的帧缓冲区。视口含有mn个像素,这些像素的状态记录在帧缓冲区内。(5)显示帧缓冲区的内容。由图像显示系统将帧缓冲区的内容显示到屏幕上,于是就看到了图形。,18,*图形生成过程示意图*,19,2.3图形编辑的原理,2.3.1 图形元素的数据结构2.3.2 编辑图形选择2.3.3 图形编辑的过程,20,2.3.1 图形元素的数据结构,图形元素是构成图形的基本单元,如点、直线、圆、圆弧等。一个图形元素应含有以下四种信息:,图形元素的种类。图形元素的几何信息。图形元素的非几何信息。图形元素的指针信息,指针即存放图形元素的地址。,21,*图形元素的数据结构*,几何数据,X1 Y1 X2 Y2,X1 Y1 X2 Y2,XC YC R,X1 Y1 X2 Y2,22,*生成新的图形元素步骤*,(1)根据图形元素的种类,动态地为新结点申请存储空间。(2)根据用户输入的数据,画出新的图形元素。(3)将新图形元素的数据存入新结点的相应数据域,再将新结点的直接后继域赋以空值。(4)将图形链表尾结点的直接后继域存入该新结点的地址,将新结点的直接前趋域存放当前尾结点的地址,于是新结点成为图形链表的尾结点。,23,*生成新图形元素示意图*,几何数据,X1 Y1 X2 Y2,X1 Y1 X2 Y2,XC YC R,X1 Y1 X2 Y2,0,24,2.3.2 编辑图形选择,用户的 选择方法,单点选择,用光标拾取图形对象。通过一个矩形窗口,选择窗口内或与窗口区域相交的图形对象。通过一个圆或多边形,选择圆或多边形内或与圆或多边形相交的图形对象。通过一条折线,选择与该折线相交的图形对象。选择最后生成的图形对象。,25,用光标在屏幕上指定一个位置,系统按照从后向前的顺序检索图形链表,找出第一个与该光标(通常以一定大小的圆形或矩形区域作为光标)相交的图形元素后,选择结束。,*图形系统的选择过程*,选择单个对象,26,选择操作的三种模式是:Add 添加模式。将随后每次选到的图形对象加入到当前的选择集。Remove 移去模式。随后选择的图形对象中如果有已被选择的图形对象,就从选择集里移出、同时恢复它们原有的亮度、颜色或线型。undo 取消最近一次的选择结果。,选择多个对象,*图形系统的选择过程*,27,*选择集的数据结构*,选择集存放的是被选择的图形对象的地址,图形元素表,选择集表,28,2.3.3 图形编辑的过程,1、删除一个图形元素2、修改一个图形元素3、增加一个图形元素,29,根据选择集提供的图形元素的地址,得到这个图形元素的所有信息。根据这个图形元素的种类、线型、几何数据,用背景色画出这个图形元素。将该图形元素的直接后继指针域中的值,存入该图形元素前趋的后继指针域;将该图形元素前趋指针域的值,存入该图形元素的后继的前趋指针域,释放该图形元素所占存储空间如图;,*删除图形元素过程*,30,几何数据,XC YC R,*删除图形元素过程*,X1 Y1 X2 Y2,X1 Y1 X2 Y2,X1 Y1 X2 Y2,XC YC R,前趋的后继指针域,后继的前趋指针域,31,根据选择集提供的图形元素地址,得到这个图形元素的所有信息。用背景色和该图形元素的原有数据重画该图形元素,该图形元素在屏幕上消失。根据用户新输入的数据和未修改的数据画出这个图形元素。将新数据存入该图形元素的各相应数据域。,*修改图形元素过程*,32,根据选择集提供的图形元素地址,得到这个图形元素的所有信息。根据用户输入的数据和选择到图形元素的其余数据,画出新的图形元素。根据被选择图形元素的种类,动态地为新结点申请存储空间。将新的图形元素的数据存入新结点的相应数据域,将新结点的直接后继域赋以空值。将图形链表尾结点的直接后继域存入该新结点的地址,将当前尾结点的地址存入新结点的直接前趋域,于是新结点成为图形链表的尾结点。,*增加图形元素过程*,33,*直线复制的运算过程*,34,1、用户坐标系与设备坐标系有何区别?2、简述图形生成的过程。3、图形裁剪的方法有哪些?4、一个图形元素由哪几类信息组成。5、图形元素的数据结构。6、删除、修改、添加图形元素的过程。,*复习题*,35,*逻辑与的概念*,当两个条件同时成立时,才能得到成立的结果的运算为逻辑与运算。,与,0,0,0,0,0,1,1,1,