620 likes | 816 Views
机械 CAD/CAM 技术. 山东理工大学机械工程学院. 第三章 计算机辅助图形处理. 第一节 二维图形变换的基本原理. 第二节 三维图形变换的基本原理. 第三节 复合变换. 第四节 窗视变换与裁减. 第五节 隐藏线与隐藏面的处理 (不讲). 第六节 图形生成方法. 第一节 二维图形变换的基本原理. 在二维平面中,任何一个图形都可以认为是点之间的连线构成,点是最基本的图形元素,图形的几何变换,实际上是点的坐标变换。. 一.概述. 1 .点的表示
E N D
机械CAD/CAM技术 山东理工大学机械工程学院
第三章 计算机辅助图形处理 第一节 二维图形变换的基本原理 第二节 三维图形变换的基本原理 第三节 复合变换 第四节 窗视变换与裁减 第五节 隐藏线与隐藏面的处理(不讲) 第六节 图形生成方法
第一节 二维图形变换的基本原理 在二维平面中,任何一个图形都可以认为是点之间的连线构成,点是最基本的图形元素,图形的几何变换,实际上是点的坐标变换。 一.概述 1.点的表示 在二维空间中,表达一个点P可以用直角坐标(X,Y)来表示,其矩阵形式为[x,y]或[x/y],表示点的矩阵通常被称为点的位置向量, 若一个图形有多个点组成,则其矩阵形式为
2.变换距阵 设P变换后的点为, p`的表达式可用P与一个2×2的变换矩阵T的乘积来表示。更确切地说,P`可以表达为: 新点的位置取决于变量A,B,C,D的值。
3.齐次坐标 齐次坐标表示法就是用N+1维向量来表示一个N维向量。在齐次坐标系统中,点(X,Y)用(X,Y,H)来表达,其中H为非零的一个任意数。点(X,Y)的标准齐次坐标表达为(X/H,Y/H,1),由于H是一个任意非零常量,为了简便起见,我们通常取H=1。齐次坐标系统中的点(X,Y,1)包含有笛卡尔坐标上的点(X,Y)。采用齐次坐标原2×2变换矩阵现在应扩展成3×3的矩阵: 该矩阵可以分为四个部分,其中左上角可以完成,比例变换、镜象变换、旋转变换、错切变换等。左下角完成平移变换,右上角完成透视变换,右下角完成全比例变换。从变换结果看,3×3的变换矩阵包含了2×2的变换矩阵的全部结果。
二.基本变换类型 1.恒等变换 点(x,y)在变换前后位置不变。即x`=x,y`=y,变换矩阵为:
2. 比例变换 点按到原点的距离比例放大或缩小,比例因子为A,D,变换表达式为x`=Ax,y`=Dy,变换矩阵为: 这种类型的变换矩阵使点(X,Y)在X,Y轴方向上均按A、D比例发生变比,因而称之为比例变换。 当A=1,D>0时,点的坐标在Y方向发生了伸缩。 当 D=1,A>0时,点的坐标在X方向发生了伸缩。
当A,D是大于0的任何数时,A=D>1图形放大,A=D<1图形缩小。且图形只是大小发生了变化,图形形状不变, 从图中完全可以看出,放大的结果都是相对于XY坐标系统的原点进行的。 当A≠D,其形状就会发生畸变。 下图为比例变换的几种情况。
3.镜像变换(对称反射变换) 在变换矩阵T中,当A或D或者两者都是负值时,S=1,其它都为零。变换后产生的坐标与原坐标关于X轴、Y轴或原点对称,如下图所示。这种产生对称图形的变换称为镜像变换或对称变换。 1) 对原点镜象 当A=D=-1,其余为零,变换矩阵为:
2) 对x轴镜象 当A=1,D=-1,变换矩阵为:
3)对Y轴镜象 当A=-1,D=1时。变换矩阵为:
4.错切变换 在左上角的变换矩阵中,令变换矩阵的主对角线上的元素A=D=S=1,对点P(X,Y)进行变换。变换矩阵为: 从上面的变换公式可以看出,C和B两元素分别使点产生了沿X方向的比例移动和沿Y方向的比例移动。其图形的变化类似于金属的错切变形,如下图C所示,这种移动称为错切,这种变换称为错切变换。
沿Y轴错切: 假定矩阵中A=D=1,而C=0。这样 P’=(X’Y’1)=(X Y+BX 1), 沿X轴错切: 假定矩阵中A=D=1,而B=0。这样 P’=(X’Y’1)=(X+DY Y 1),
5.旋转变换 旋转变换是将图形绕某一固定点顺时针或逆时针旋转一个角度。规定:逆时针旋转方向为正,顺时针为负。绕原点逆时针旋转θ角的数学表达式为: X’=XCOSθ-YSINθ Y’=YCOSθ+XSINθ 用变换矩阵表示为:
6.平移变换 点沿x轴和y轴平移L,M,平移表达式为:X’=X+L,Y’=Y+M 对应的变换矩阵为: 平移效果如图所示。
7.通用变换矩阵: 综上所述,我们可以总结出以上变换的通用变换矩阵: 所有变换情况s=1,p=O=0 1)恒等变换:,L=M=0,C=B=0,A=D=1 2)比例变换:B=C=L=M=0,A,D大于零 3)镜象变换:对X轴A=1,D=-1,B=C=L=M=0 对Y轴A=-1,D=1,B=C=L=M=0 对原点A=D=-1,B=C=L=M=0 4)错切变换:A=D=1,L=M=0,B,C不同时为0 5)旋转变换:A=D=CosQ,C=-sinQ,B=sinQ,L=M=0 6)平移变换:A=D=1,B=C=0,L,M不等于0
三.复合变换: 1.绕任意点的旋转 当一个图形绕任意点Q(L,M)的旋转。如图 所示,由于只知道绕原点的旋转,对于绕任意一点的旋转,我们可以将问题分解成三个不同的基本问题,这需要三种连续的变换:
第一步:平移旋转中心Q到原点,图形也随着一起平移。第一步:平移旋转中心Q到原点,图形也随着一起平移。 这样旋转中心变为原点,可以利用绕原点的旋转矩阵。 第二步: 完成所需要的旋转
第三步: 将旋转后的结果平移回原来的中心Q 所得的变换结果是上面的三个矩阵的乘积
2.相对任意点的比例变换 利用平移矩阵和比例变换矩阵,经过三步有序的变换,可以得到相对于任意一点Q(L,M)的比例变换的组合矩阵。其变换顺序如下: 第一步: 将原图中任意一点Q,平移到坐标原点,整个图形随之移动,这样为下一步使用相对原点的比例变换矩阵做好了准备
第二步,实施比例变换。 第三步,将任意点Q平移至原来位置,整个图形随之移动。
这样就完成了相对任意点的比例变换。上述连续变换的组合矩阵为:这样就完成了相对任意点的比例变换。上述连续变换的组合矩阵为:
3.对任意直线作镜象 假如要将一个三角形对直线AX+BY+C=0作镜象,如图a所示 ,也可以使用基本的变换方法来实现。 直线与Y轴的交点(0,-C/B), 直线与X轴的交点(-C/A,0), 与X轴的夹角 θ =Arctg|A/B| 对任意线AX+BY+C=0作镜象具体步骤如下:
第一步:沿Y轴平移C/B使直线过原点。平移后的图形如图B。第一步:沿Y轴平移C/B使直线过原点。平移后的图形如图B。
第二步:顺时针旋转θ角,使直线AX+BY+C=0位于X轴上。旋转后的情形如图C所示。第二步:顺时针旋转θ角,使直线AX+BY+C=0位于X轴上。旋转后的情形如图C所示。 第三步:物体对X轴镜象,镜象后的图形如图d
第四步 应用步骤二的逆过程, 结果如图e 第五步 应用步骤一的逆过程,结果如图f
第四、第五步的目的是返回物体到原来的位置。第四、第五步的目的是返回物体到原来的位置。 表达这五步的完整变换是 T=T1×R(-θ) ×T2×R(θ)×T3 化简后得 在多个矩阵进行级联时,要注意矩阵的顺序。
第二节 三维图形变换的基本原理 三维变换和二维变换一样,三维坐标的齐次坐标的表达式为:P=[X Y Z 1],对应的变换矩阵为: 同二维变换一样,也可以分四个区,左上角可以完成,比例变换、镜象变换、旋转变换、错切变换等。左下角完成平移变换,右上角完成透视变换,右下角完成全比例变换。
一.三维图形的基本变换 1、平移变换 与二维平移变换一样,三维平移变换矩阵为: P’=[X’Y’Z’1]=[X+L Y+M Z+N 1] 其中:L为X方向上的平移量,M为Y方向上的平移量,N为Z方向上的平移量。
2.比例变换 三维比例变换的矩阵为: P’=[X’Y’Z’1]=[AX EY IZ 1] 其中: A为X方向上的比例系数,E为Y方向上的比例系数,I为Z方向上的比例系数。当A=E=I>0,则图形按同一比例放大或缩小,否则如果三者不等,但大于零,则图形会发生变形。
3.错切变换 错切变换的矩阵是: P’=[X’Y’Z’1]=[X+DY+GZ Y+BX+HZ Z+CX+FY 1] 从公式中可以看出,变换后一个坐标的变换结果受另外两个坐标的影响。错切变换是绘制斜轴测图的基础。
4.旋转变换 二维旋转变换是围绕点,三维变换是围绕轴旋转。同样,旋转角度沿旋转轴的反方向看,逆时针为正,顺时针为负。绕三个坐标轴旋转的变换如下: a)绕X轴逆时针旋转α角
b)绕Y轴逆时针旋转β角 c)绕Z轴逆时针旋转γ角
5.镜象变换 镜象变换是对特定的平面进行变换。 a)对XOY平面的镜象变换
b)对YOZ平面的镜象变换 c)对XOZ平面的镜象变换
第三节 复合变换 与二维变换一样,通过对三维基本变换矩阵的组合,可以实现对三维物体的复合变换。下面我们以轴测图,三视图和透视图为例,说明三维变换的复合变换。 1.正轴测图 如图所示,正轴测图投影图是将物体绕Y轴顺时针旋转β角,再绕X轴逆时针旋转α角然后向V面投影而得到的,变换矩阵为:
2。三视图 1)主视图 主视图是沿着Z向向V面投影的视图,如图b所示,它是将空间物体沿Z向压缩而得,因此需要将物体的坐标乘压缩矩阵。
2) 俯视图 俯视图是将空间物体先沿X向压缩,然后绕Y轴顺时针旋转90度,为了与主视图间保持一定的距离,最后沿X的负向平移M。组合矩阵为:
3)左视图 左视图是将空间物体先沿Y向压缩,然后绕X轴逆时针旋转90度,为了与主视图间保持一定的距离,最后沿Y的负向平移M。组合矩阵为:
3.透视图 透视图是一种与人的视觉观察物体比较一致的三维图形,它是采用中心投影法绘制 透视投影从一个视点透过一个平面观察物体,其视线是从视点出发,视线是不平行的。视线与画面相截交得到的图形就是透视图。任何一束不平行于投影面的平行线的透视投影将汇聚在一点,称之为灭点,在坐标轴上的灭点称为主灭点。透视投影按照主灭点的个数分为一点透视、二点透视和三点透视。下图为一点透视和两点透视的示意图。 单位立方体的一点透视和两点透视
当变换矩阵最后一列不为零时,即可产生透视效果。其变换为:当变换矩阵最后一列不为零时,即可产生透视效果。其变换为: 以上变换仍是三维空间到三维空间的透视变换。当P、Q、R三个元素中,只有一个元素不为零时,可以得到一点透视;当只有一个元素为零时为两点透视;当均不为零时,为三点透视。
第四节 窗视变换与裁剪 开窗口: 利用显示屏幕按人们的意愿选取和放大一部分画面的方法称为开窗口 裁剪: 对不感兴趣的画面不予显示的技术称为剪取,也叫裁剪 一、常用的坐标系 1.用户坐标系 即直角坐标系,它是用户在确定定义一个图形时,用来描述图形中各元素的位置、形状和大小的坐标系。 2.设备坐标系 设备坐标系是用户配备的硬件设备的坐标系,如显示器,绘图机等。例如显示器的原点在屏幕的左上角,X轴正向向右,Y轴的正向向下
二、窗视变换 1.窗视变换 在用户坐标系中开用户窗口,凡是落在该窗口内的图形信息都将在图形设备上以设备坐标的形式在视图区中满屏输出。由于用户窗口和视图区是在不同的坐标系中定义的,所以要把用户窗口内的图形信息拿到视图区去输出之前,必须进行坐标变换。既窗视变换 2.用户窗口 一般设定为一个矩形区域,并可以用该矩形域的左下角(Xwl,Ywl)和右上角(Xwr,Ywr)的坐标来定义。 3.视图区: 是用户在屏幕上定义的一个小于或等于屏幕的区域。视图区是用设备坐标系来定义的,通常也设定为矩形。同样可以用该矩形的左下角点(Xsl,Ysl)和右上角点(Xsr,Ysr)的坐标来定义。
如图所示,假如在用户坐标系中定义的物理窗口的左下角点的坐标为(Xwl,Ywl)和右上角点的坐标为(Xwr,Ywr),在设备坐标系下定义的视图区的左下角和右上角坐标分别为(Xsl,Ysl)和(Xsr,Ysr)。如图所示,假如在用户坐标系中定义的物理窗口的左下角点的坐标为(Xwl,Ywl)和右上角点的坐标为(Xwr,Ywr),在设备坐标系下定义的视图区的左下角和右上角坐标分别为(Xsl,Ysl)和(Xsr,Ysr)。
4.变换公式 根椐窗口与视口的相似对应关系,由图可以看出。 所以用户窗口内一点W(Xw,Yw)要变换到视图区中对应的一点S(Xs,Ys)时,按下式进行变换。
三、裁剪 1.裁剪: 在用户坐标系中开用户窗口,在窗口区域内定义的图形以适当的比例输出,而窗口外的图形在输出时裁剪掉。 2.裁剪的原理