1、第3章 图形技术基础,1,第3章 图形技术基础,主要内容,坐标系,图形变换,窗口-视区变换,交互技术,1,2,3,4,用户界面,5,1、坐标系,在计算机图形学中,主要使用的是直角坐标系(笛卡尔坐标系)。坐标系根据点在屏幕上的水平位置(x)和垂直位置(y)来确定像素点,通过给出与唯一位置对应的两个值指定位置。一般常用的坐标系有设备坐标系、用户坐标系、规范坐标系、窗口坐标系等。实际使用时,不同的坐标系有不同的坐标原点、坐标向量和取值范围,不同的处理场合应使用相应的坐标系。,(1)设备坐标系 DC(Device Coordinate System),在设备这一级,往往使用的是与设备的物理参数有关的设
2、备坐标系,如:图形显示器使用屏幕坐标系,绘图仪则使用绘图坐标系。设备坐标系的单位是像素或绘图笔的步长,一般取整数,且有固定的取值范围。,在屏幕坐标系下,值得注意的是坐标系中的y轴方向与一般笛卡尔坐标系y轴的方向正好相反,这种约定与光栅扫描的方式一致。此外,扫描零线与屏幕的顶部相对应,这在数学上是一个令人遗憾的选择。,(2)用户坐标系,用户坐标系也称世界坐标系,它是用户处理自己的图形时所采用的原始的坐标系,是应用程序中用于对预定显示对象的几何定义的坐标系。,通常使用的是以右手定则的直角坐标系(二维或三维),坐标系的单位由用户自行确定,可以是毫米、英尺、米、公里等等,一般使用实数,取值范围并无限制
3、。用户常使用这个坐标系来描述图形数据。,用户坐标系与设备坐标系的转换,用户坐标系中的原始对象要经过坐标变换等处理后,才能变成显示于屏幕的图像,要把用户坐标系上的(x,y)变成设备坐标系上的相应坐标值(X,Y),可用以下的公式进行坐标变换:,然后对X和Y取整即可。式中的 Xmax、Ymax分别是在设备坐标系中屏幕右下角的坐标值; xmax、ymax分别是在用户坐标系中屏幕的右上角的坐标值。,(31),(3)规范坐标系NDC (Normalization Device Coordinate System),有时为了摆脱对具体物理设备的依赖,便于在不同应用和不同系统之间进行图形信息的交换,可以采用某
4、种中间坐标系,它将坐标值规定在某个范围内,如把坐标取值范围规定在0,1区间内,这样的坐标系称为规格化设备坐标系。以规范坐标系坐标表示的图形,在任何设备空间中都能处于相同的相对位置。,(4)窗口坐标系,在用户坐标系中的图形如果太复杂,很可能无法在屏幕上完整或清晰地显示整幅图形。为了满足研究和观察局部图形的要求,往往要用一个被称为窗口的矩形把要观察的部分框起来,而且屏幕上只显示矩形框内的内容。为了使程序员有效地使用窗口,每个窗口都是以其自己的坐标系为参照的。这一类坐标系称为窗口坐标系。,2、图形变换,2.1二维图形的几何变换点是构成几何形体的基本要素,在二维平面中,任何一个图形都可以认为是点之间的
5、连线构成的。对于一个图形作几何变换,实际上就是对一系列点进行变换。 将二维空间的任意点P(x, y)变换到一个新的位置P1(x1, y1),其一般数学表达式为:,(3-2),将上式用矩阵表示,则有:,令:,并称之为变换矩阵。,变换矩阵也可以实现一组点的几何变换,如,(1)变换类型,1)比例变换当b=c=0,a、d0时,,称该变换为比例变换。,当b=c=0,a、d1时,为恒等变换; 当b=c=0,ad时,为位似变换; 当b=c=0,a、d1时,为放大变换; 当b=c=0,a、d1时,为缩小变换; 当b=c=0,ad时,为不等比例变换;,a)位似放大变换,b)不等比例放大变换,2)对称变换,对称变
6、换又称为镜像,指图形变换前后对称于某一特定直线(如坐标轴)或特定的点(如坐标原点)。,关于x轴的对称变换当x1=x,y1=-y时,为对x轴的对称变换,变换矩阵为,关于y轴的对称变换当x1=x,y1=-y时,为对x轴的对称变换,变换矩阵为,关于直线y=x的对称变换当x1=y,y1=x时,为对直线y=x的对称变换,变换矩阵为,关于坐标原点的对称变换当x1=为x,y1=-y时,为对x轴的对称变换,变换矩阵为,关于直线y=-x的对称变换当x1=-y,y1=-x时,为对直线y=-x的对称变换,变换矩阵为,3)错切变换,错切变换,指图形沿某轴方向的坐标发生变化,而与之垂直方向轴的坐标值不变,使图形产生特定
7、方向的变化。错切变换有沿x轴和沿y轴错切两种形式。,沿x轴的错切当沿x轴的错切时,有x1=xx,y1=y,对应的变换矩阵为,沿y轴的错切当沿y轴的错切时,有x1=x,y1=y y ,对应的变换矩阵为,注意:当沿坐标轴正向做错切时,b、c取正值,否则取负值。,4)旋转变换,旋转变换,指将平面上任意一点绕原点旋转角,一般规定逆时针方向为正,顺时针方向为负。如下图示可推出旋转变换矩阵,(2)齐次坐标,齐次坐标(Homogeneous Coordinate)技术是从几何学中发展起来的,随后在计算机图形学中得到了广泛应用。利用齐次坐标可以将平移、旋转、比例、投影等几何变换统一到矩阵的乘法上来,从而为图形
8、变换的计算机处理提供了方便。从广义上讲,齐次坐标就是用(n+1)维矢量表示n维矢量,即将n维空间的点用(n+1)维坐标表示。例如,一般笛卡尔坐标系中的二维点矢量x y可用齐次坐标表示为Hx Hy H,其中最后一维坐标是一个标量,称此为比例因子。因此只要给出某一点的齐次坐标X Y H,就可以求得其二维笛卡尔坐标,即,注意:在齐次坐标中当H0而X和Y不都为零时,齐次坐标可用来表示无穷远的点。而当齐次坐标中的元素均为零时没有意义。,(3)齐次坐标下的二维图形变换,采用齐次坐标技术可用一个统一的33矩阵来描述包括平移在内的全部二维图形变换,即,改变T中元素的取值就可得到不同的变换形式。,1)平移变换平
9、移变换使二维图形由原坐标位置平移到另一位置,图形自身形状和方位无变化。其变换矩阵为:,平移变换为,2)以原点为中心的旋转变换矩阵为:,其对应的旋转变换矩为:,3)以原点为中心的比例变换矩阵为:,以原点为中心的比例变换为:,4)错切变换矩阵为:,当b=0,c0时为沿x轴的错切;当b0 ,c=0时为沿y轴的错切,5)对称变换矩阵为:,当a=1、d=-1时,相对于x轴做对称变换; 当a=-1、d=1时,相对于y轴做对称变换; 当a=-1、d=-1时,相对于坐标原点做对称变换;,(4)二维变换矩阵的功能分块,(5)二维复合变换,在实际应用中,有时要对图形进行连续多次基本变换才能满足要求,这种由多个基本
10、变换组成的复杂变换称为复合变换(级联变换)。复合变换的基本原理是矩阵乘法的结合律,假设已知点P经过T1、 T2、 T3 3个几何变换,变换到新的位置P1,则P1=(PT1)T2)T3 运用矩阵结合律,可得到 P1=P(T1T2T3) 于是得组合变换的复合变换矩阵为 Tc=T1T2T3,由于矩阵相乘不满足交换率,因此,复合变换时,矩阵相乘是有顺序的,先变换的矩阵位于连乘式的左端,后变换的矩阵位于连乘式的右端。 但对于一些特殊的图形变换情况,两个变换矩阵相乘是可以交换顺序的。,也就是,2.2三维图形的几何变换,三维几 何变换,二维齐次坐标, x y 1 ,一、平移变换,平移变换使形体在三维空间产生
11、平移,但形状和大小不变。设形体在空间3个坐标轴方向上分别平移了tx、ty、tz,则其平移变换矩阵为,空间点P(x,y,z)平移变换到点P1(x1,y1,z1)的变换为,二、相对于原点的比例变换,设形体在空间3个坐标轴方向上变换的比例因子分别是sx、sy、sz,则其相对于坐标原点的比例变换矩阵为,空间点P(x,y,z)相对于坐标原点做比例变换到点P1(x1,y1,z1)的变换为,三、对称变换,四、相对坐标轴的旋转变换,三维空间的形体可在右手坐标系中描述,也可以在左手坐标系中描述。当采用右手坐标系时,旋转正方向规定为从旋转轴的正端向坐标原点看时的逆时针方向,如下图示。当形体不动坐标系旋转时,则方向
12、相反;而采用左手坐标系时,旋转角度正方向的规定与上述规定相反。,1)绕X轴的旋转变换,变换矩阵,变换过程,2)绕y轴的旋转变换,变换矩阵,变换过程,3)绕z轴的旋转变换,变换矩阵,变换过程,五、 错切变换,与二维类似,指图形沿X,Y,Z三个方向的错切变换,它是画斜轴侧图的基础。其变换矩阵的一般形式为,式中rij决定三维图形错切变换的形式,如下表示,6) 三维变换矩阵的功能分块,线性变换,透视变换,平移变换,整体比例因子,7) 三维图形的复合变换,a)相对空间任意点Pr的比例变换,(1)平移坐标系,使原点Pr重合,(2)以Pr点为中心进行比例变换,(3)移回坐标系,变换完成,变换公式推导,b)绕
13、过坐标原点任意轴的旋转变换 如下图所示,求过原点任意轴OA旋转角的三维旋转变换矩阵,绕X轴旋转角,绕坐标系Y轴旋转角,绕坐标系Z轴旋转角,绕Y轴旋转-角,绕坐标系X轴旋转- 角,因为显示器和绘图仪只能用二维空间来表示图形,要显示三维形体就要用投影方法来降低其维数。为了能对三维对象作透视投影,先要在三维空间给定一个投影平面和视点。从视点发出的所有通过对象的射线和投影平面的交点形成了对象的透视投影,如图3-11(a)所示,由于三维空间中直线的投影还是直线,只要找到直线段两个端点的投影,再把两个投影点连接起来,所得线段便是原来线段的投影。如果把视点移动到无穷远处,这时从视点发出的通过三维形体的射线成
14、为平行线,工程上称这种投影为平行投影。如图3-11(b)为形体的平行投影。,2.3三维形体的投影变换,(1)投影变换的概念,1)投影变换的原理投影是用一组假想光线将空间形体投射到投影面上而得到的平面图形,三维物体变换成二维图形表示的过程称为投影变换。如图3-11所示,从投影中心到物体上某点的连线(或延长线)与一平面的交点,就是该点在这个平面上的投影点,这个线称为投影线,这个平面称为投影平面。一个物体的所有投影点集合就是它在此投影面上的二维投影图形,简称投影。,图3-11 透视投影与平行投影,2)投影变换的分类投影变换的分类下图所示。各类投影各有不同的特点和用途。,透视投影透视投影中心到投影面的
15、距离有限,形成人们视觉习惯上有立体透视效果的投影,即透视投影。透视投影真实感强,用于计算机绘图软件中可生成以假乱真的虚拟现实场景。投影面直接影响立体透视效果,改变投影面与坐标轴的相对位置可生成三种不同的透视投影图。 a)一点透视:投影面与一个坐标轴正交,与另两个平行; b)二点透视:投影面与两个坐标轴相交,与另一个平行; c)三点透视:投影面与三个坐标轴都相交。,平行投影投影中心与投影面之间的距离无穷大时,透视投影演变成平行投影。平行投影图中各坐标轴尺寸有相对固定的比例关系,便于从图形上直接测算其大小,适合于绘制工程施工图和零件加工图或装配图。投影面与坐标轴相对位置改变可生成各种不同的平行投影
16、图。 a)正平行投影:投影方向垂直于投影面,它分为正投影和正轴侧投影。 正投影:投影面垂直于用户坐标系中某一个坐标轴。通常工程视图中的主视图、俯视图、左视图就是正投影。 正轴侧投影:投影面与用户坐标系3个坐标轴均不垂直。它分为:正等测、正二测和正三测。 a)斜平行投影:投影方向与投影面不垂直。,(2)平行投影,1)三面正投影变换机械设计通常都是采用国家标准规定的三视图来表达零件的形状。将空间三维实体通过矩阵变换而获得三视图(即主视图、俯视图和左视图)的绘图信息,这种变换称之为三面投影变换(或正投影变换)。下面讨论三视图的投影变换。物体与3个投影平面(H、V和W)相对位置关系如下图所示:,主视图
17、变换矩阵 三维空间点的齐次坐标是(x,y,z,1),若令其中的y=0,显然就是该点在V面上的投影。因此令变换矩阵的第二列元素全为零,即得到物体对V面的投影变换矩阵(主视图变换矩阵),俯视图变换矩阵 先将物体向H面投影(令Z0),得到水平投影,再将水平投影绕X轴旋转90度,使其与V面在同一平面内;然后沿Z轴方向平移一段距离n(n0),使V、H投影保持适当距离,即生成俯视图。其变换矩阵为:,左视图变换矩阵 先将物体向W面投影(令x0),得到侧面投影,再将侧面投影绕Z轴旋转90度,使其与V面在同一平面内;然后沿X轴方向平移一段距离l(l0),使V、W投影保持适当距离,即生成左视图。其变换矩阵为:,2
18、)轴测投影变换,正轴测投影的投影面不与坐标轴垂直,同时可以看到一个形体的多个面,它保持了形体平行线间的平行性,但角度改变。若将下图a)所示的立方体直接向V面投影,得到b);若将立方体绕Z轴旋转角,再向V面投影则得到图c);若将立方体绕Z轴旋转角,再绕X轴旋转角得到图d),即得到立方体的正轴测投影图。,因此,正轴测的变换矩阵如下:,只要给出、不同值就能得到不同的正轴测投影图。,a)正等测投影变换 按国标规定:以45、 35.2644即得到正等测投影变换矩阵:,b)正二测投影变换 按国标规定:以20.7、 19.47即得到正二测投影变换矩阵:,1)窗口 在计算机绘图中,常常遇到这样的情况:不同时刻
19、、针对不同目的、只关心整幅图形的不同部位,而对其它部分暂时不感兴趣,此时,希望关心的这部分图形能够尽量清晰地显示出来。 于是,大多数的图形软件都提供了这样一个功能:即用户可以在输入的图形上选定一个观察区域。这个观察区域被称为窗口(Window)。然后,经过图形软件系统的运算处理,窗口内的图形便在屏幕上显示出来。这和生活中的窗口类似,它是系统看现实世界的一种限制,如同房间里的人所目睹的世界只是“窗口”那一部分,其它部分因不透明的墙壁遮挡而不可见。 在二维平面,通常定义窗口为一矩形区域,它的大小和位置在用户坐标上表示(如图3-17),用4个变量代表窗口左下角和右上角点的坐标,即,3、窗口视区变换,
20、a)定义窗口,b)视区复制窗口内容,矩形内的形体,系统认为是可见的;矩形外的形体则认为是不可见的。窗口可以嵌套,即在第i层窗口中再定义第i+1层窗口。,2)视区,在显示窗口内图形时,可能占用整个屏幕,也可能设想屏上有一个方框,要显示的图形只出现在这个方框内。那么,在图形输出设备上(显示屏、绘图仪等)用来复制窗口内容的矩形区域被称为视区(View Port)。 视区是一个与设备密切联系的概念,显示终端的屏面和绘图仪的幅面都是用来表现的二维平面,而且是个有限的平面。,通常也用4个变量加以表示,即,视区也可以嵌套,还可以在同一物理设备上定义多个视区,分别作不同的应用或分别显示不同角度、不同对象的图形
21、。,3)窗、视变换,只有当定义的视区大小与窗口大小相同,而且设备坐标的度量单位与用户坐标的度量单位也相同时,二者之间才是11的对应关系,而在绝大多数情况下,窗口与视区无论是大小还是单位都不相同。为了把选定的窗口内容在希望的视区上表现出来,即将窗口内某一点(XR,YR)画在视区的指定位置时,必须进行坐标变换,变换过程如下页图所示。,矩形内的形体,系统认为是可见的;矩形外的形体则认为是不可见的。窗口可以嵌套,即在第i层窗口中再定义第i+1层窗口。,由上式可以得出结论: (a) 视区不变,窗口缩小或放大时,显示的图形会相应放大或缩小,如下页图所示。 (b) 窗口不变,视区缩小或放大时,显示的图形会相
22、应缩小或放大。 (c) 视区纵横比不等于窗口纵横比时,显示的图形会有伸缩变化。 (d) 窗口与视区大小相同、坐标原点也相同时,显示的图形不变。,窗口和视区的适当选用,可以较方便地观察用户的整图或局部图形,便于对图形进行局部修改和图形质量评价,还可以对图形进行放大或缩小。用户定义的图形从窗口到视区的逻辑变换过程如下图所示。,图3-21 窗口视区二维逻辑变换过程,4、交互技术,1)常见交互技术及其应用 应用CAD/CAM系统进行产品设计过程是输入、处理、输出的反复过程,即是所谓的人机交互设计的过程。一个高效的人机通讯环境可以提高用户使用计算机的效率,它要求一个优秀的CAD/CAM应用软件除具备基本
23、功能外,一般还需提供良好的人机界面和交互手段。因此,在目前的CAD/CAM应用软件的开发中,人们越来越多地重视人机交互技术的研究与开发。 交互技术是通过用户界面作为系统的接口,因为在许多情况上,交互设备是已经确定的,设计人员并不能任意选择交互设备,所以设计者力求在软件上满足种种要求。,舒适性 应尽量减少用户的负担,交互技术应辅助用户愉快地完成工作任务。 自释性 应该能够明确告诉用户系统的要求及应用范围,提供简单易懂的用户指南及必要的帮助信息,也要告诉用户任意时刻系统的状况。 可控性 指人机对话是在用户可以控制的范围以内。 容错性 系统稳定运行的一个重要条件,在用户输入错误时,系统应能及时指出错
24、误并帮助改错。 柔性 用户能够根据个人习惯、专业特长等对系统进行不同的设置,如色彩、度量单位等。,2)交互技术的分类,交互技术是完成交互任务的手段,其实现很大程度上依赖于交互设备。从逻辑上讲,交互设备有定位、键盘、选择、取值和拾取五种。最基本的交互任务有定位、字串、选择和取数。对给定的交互任务可以用不同的交互技术来实现,例如一个选择任务可以用鼠标点菜单,也可以用键盘输入选项名字,还可以用功能键来实现选择。针对不同的交互任务,交互技术主要有以下9种:定位技术、定量技术、定向技术、橡皮筋技术、拖动技术、选择技术、拾取技术、文本技术和草图技术。,3)交互设计原则,交互设计原则是任何设计都必需要注意的
25、问题和需要遵循的原则,这是保证设计成功的必要的前提。 一致性与规格化设计 反馈信息 防错和改错功能 提示和帮助信息,5、用户界面,任何一种计算机的应用过程都可抽象为输入、处理、输出三个逻辑部分,而在CADCAM中,这个过程不是单向的一个周期,却是输入、处理、输出,再输入、再处理、再输出这样的反复过程。具体而言,技术人员将设计构思输入系统,系统对构思加以描述、整理,输出给技术人员;技术人员进行修改、补充后再输入计算机,系统再进行分析、判断,将结果输出;如此循环往复,直到设计满意。这就是所谓人机交互设计的过程。显然,它需要人机之间有一个高效的通讯环境。这些都要求有一个良好的人机界面和交互手段。事实
26、证明,用户界面的优劣常常影响软件的推广和使用效果,甚至缩短生存周期,为此,软件商越来越重视用户界面的研究与开发,不断推出一些优秀的交互式图形界面系统。CADCAM软件系统的开发也将友好的用户界面作为基本需求和要达到的目标之一。,1)用户界面的类型与设计,用户界面不能简单地被理解成是人操作计算机时所面对的屏幕显示形式,它隐含着人机交互的状态、表达形式、操作方法等一系列内容。 (1) 所见即所得型。这是一种荧光屏上的显示与最终输出结果一致的界面类型。 (2) 直接操作型。这是一种操作动作与操作目的完全吻合的界面类型。如WINDOWS环境下,将要删除的文件直接拖入废品箱; (3) 图标型(Icon)
27、 这是一种用图形代替文字或数值的界面类型。打印机代表打印命令、问号代表帮助命令、文件箱代表文件管理命令等。这种界面是目前最为流行的界面类型。,(4) 菜单型 这是一种将功能命令按类组织、列于屏幕之上的供用户选择的界面类型。它的使用类似于去餐馆吃饭时点菜的情景,用户不必事先记住所有功能命令,只要掌握菜单结构就可以到相应的菜单项中选取所需的命令,点取该命令,即执行操作。菜单型界面的最大好处就是用户记忆负担轻,操作效率高(不必逐一输入命令字符),对于功能命令较多的大型软件尤为重要。但当莱单层次过多的情况下,命令索取的效率要大大降低。 (5) 问答型 这是一种按进程进行人机对话应答的界面类型。通常是系
28、统运行到某一阶段需要人干预输入信息或决策选择时在屏幕上提示需输入的信息项目,等待用户输入;或显示预制选项,等待用户选择,用户一旦输入符合格式的信息,系统将继续运行,继续问答。这在交互式几何建模系统、CADCAM系统等只要含有某个进程的软件系统中都会见到。,另外还有表格型、命令键入型、语音型等。这些界面在实际系统中并非独立使用的,而常常是几种类型的组合,针对不同的环境、不同的需要而设置不同的界面。如菜单有图标式、文本式,结合起来使用,互相取长补短,如WINDOWS环境;既有菜单选择,又有命令键入,如AutoCAD、IDEAS的界面。,2)用户界面设计,用户界面涉及到屏幕布局、颜色选择、网格划分、
29、菜单设置、图标选用等多方面内容。 屏幕划分 针对显示屏幕的大小、格式和分辨率,合理、充分地利用屏幕,将屏幕作适当划分,以便于不同的显示用途。通常CADCAM系统总是需要开辟图形区、菜单区、显示提示区等至少三个区域。屏幕的划分有对称型和非对称型等不同形式,如图下图所示。,(2) 字型选用 无论是菜单还是系统运行中的显示信息,若字符选用得当可以给屏幕带来生机和好的效果。 (3) 颜色、灰度选择 用不同颜色和灰度来标识信息、设置背景、分离不同形体,这对于用户在操作过程中集中注意力、减少错误是非常有效的,同时对操作者的情绪、心情等均会产生影响。 (4) 菜单设计 菜单是一组功能、对象、数据或其它用户可选择实体的列表,是目前CADCAM系统中最常用的交互功能方法。菜单设计时,通常要考虑菜单的结构、类型、形状等因素。,小 结,本章主要涉及以下几方面的内容 坐标的基本知识 二维图形变换 三维图形变换 窗口视区变换 交互技术的相关概念及常见的应用要求重点掌握好二维、三维图形变换知识,尤其是二维图形变换技术。,作 业,(1)P53第2题 (2)将ABC(A(0,0)、B(1,1)C(5,2)尺寸放大一倍,但C点的位置固定不变。试写出变换矩阵,变换过程并画出相应的图形。 (3)写出下图所示的ABC变换到A1B1C1的过程及齐次变换矩阵。,第3章 图形技术基础,109,Thank You!,