《计算机辅助设计与制造课件CAD4》由会员分享,可在线阅读,更多相关《计算机辅助设计与制造课件CAD4(15页珍藏版)》请在金锄头文库上搜索。
1、第4章 图形坐标变换与裁剪 4.1 二维图形的坐标变换 在图形显示过程中,用户需对图形进行平移、放大、旋转等基本的几何变换操作。图形的平移、放大、旋转从数学上看都是几何性质的“变换”,故又称为图形的几何变换。 1二维图形坐标变换的基本原理: (1) 平移变换: 一个点P(x,y) 平移到P*(x*,y*),平移后产生的新坐标如下: x*=x+Dx y*=y+Dy,(2) 变比例变换: X*=SxX Y*=SyY (3) 旋转变换: X*=Xcos-Ysin Y*=Xsin+Ycos 2坐标变换的矩阵表示形式: 一个点的坐标可以用矩阵形式x y 或 表示,坐标变换的矩阵表示形式为: X* Y*=
2、X Y =aX+cY bX+dY 其中:T= 为变换矩阵。,注意,不论变换矩阵中的元素a、b、c、d为何值时,都不能使图形产生平移变换,即用2行2列的变换矩阵不能实现图形的平移变换。这就需要使用图形的另一种表示方法齐次坐标。 3齐次坐标与齐次变换矩阵: 为了进行平移变换,要给二维点的位置矢量增加一个附加坐标,使之成为三维行向量x y l,即用点的齐次坐标表示,这样便可进行运算了。 (1) 齐次坐标: 齐次坐标是将一个n维空间的点用n+1维坐标来表示。如在直角坐标系中,二维点x y的齐次坐标通常用三维坐标Hx Hy H表示,一个三维点x y z 的齐次坐标通常用四维坐标Hx Hy Hz H表示。
3、在齐次坐标系中,最后一维坐标H称为比例因子。,三维直角坐标与其齐次坐标的关系是: x=Hx/H y=Hy/H z=Hz/H 由于H的取值是任意的,所以任一点可用多组齐次坐标表示。在一般使用中,总是将H设为“1”,以保持两种坐标的一致。 (2) 齐次变换矩阵: 对于二维坐标系上的点,齐次坐标为Hx Hy H,而齐次坐标变换矩阵的形式是: T=,4二维复合变换: 实际上,上述介绍的几种基本变换一般不单独出现,通常出现的都是复合变换。有的图形须经过多次基本变换才能完成,这种由两个以上基本变换构成的变换称为复合变换。设各次变换的变换矩阵分别为T1,T2,Tn,则复合变换矩阵是各次变换矩阵的乘积。 例:
4、当图形要对画面中的某一点(x0,y0)作放大时,可通过如下三种基本变换复合而成: (1) 首先将坐标原点(0,0)平移至(x0,y0) (2) 然后图形以(x0,y0)为中心作放大 (3)最后将坐标原点自(x0,y0)的位置移回原处(0,0),则以点(x0,y0)为中心,放大系数分别为Sx、Sy的复合变换矩阵为: T=T1T2T3= 同理,当图形绕坐标原点以外的任意点(x0,y0)作旋转时,也可以通过三种基本变换复合而成,即将旋转中心平移到坐标原点,其变换矩阵为T1;然后使图形绕坐标原点旋转角,变换矩阵为T2;最后将旋转中心平移回原来的位置,其变换矩阵为T3。则绕坐标原点以外的任意点旋转角的复
5、合变换矩阵为: T=T1T2T3=,4.2 三维图形的坐标变换 三维图形的坐标变换是二维图形坐标变换的简单扩展。三维齐次坐标变换矩阵的形式是: T = 4.2.1 三维基本变换 1比例变换: 2反射(对称)变换: (1)对xoy平面的反射变换 (2) 对xoz平面的反射变换,(3) 对yoz平面的反射变换。齐次变换矩阵为: 3平移变换: 4旋转变换: (1) 绕X轴旋转角 (2) 绕Y轴旋转角 (3) 绕Z轴旋转角 4.2.2 三维基本变换矩阵的组合 1绕通过坐标原点的任意轴的旋转变换矩阵 2绕通过任意点P(l,m,n),方向余弦分别为、的轴的旋转变换矩阵,4.3 三维图形变换的应用 4.3.
6、1 正投影变换 正投影变换可得到国家标准规定的六个基本视图主视图、俯视图、左视图、右视图、仰视图和后视图。 1主视图变换矩阵 主视图变换矩阵为:,2俯视图变换矩阵 俯视图变换矩阵为: TH = 3左视图变换矩阵 左视图变换矩阵为: TW =,4.3.2 正轴测投影变换 正轴测投影图是工程上应用广泛的二维图形。其变换矩阵为: T正轴测 = (4-1) 在上述所示的正轴测投影变换矩阵中,只要给、不同的值,就可得到不同的正轴测投影图。,1正等轴测投影变换矩阵 按国家标准规定,以=45、=35.2644代入式(4-1),即可得到正等轴测投影变换矩阵。 2正二等轴测投影变换矩阵 按国家标准规定,以=20
7、.7、=19.47代入式(4-1),即可得到正二等轴测投影变换矩阵。 4.3.3 透视投影变换 透视图是采用中心投影法得到的图形,即通过投视中心(视点),将空间立体投射到二维平面(投影面)上所产生的图形。 1透视变换矩阵 2一点透视变换,4.4 开窗与裁剪 4.4.1 基本概念和术语 1用户坐标系(世界坐标系) 2屏幕坐标(设备坐标) 3窗口 4视区 5裁剪 4.4.2 窗口视区变换,4.4.3 二维图形的裁剪 1点的裁剪 在图形剪裁中,最基本的是点的裁剪。对于某一点P(x,y),只要满足 xmin xxmax ymin yymax 则该点一定落在边界所围成的矩形框内。 2直线裁剪的Cohen
8、Sutherland算法 延长窗口的边界,将屏幕分为九个小区域,中央小区域就是要裁剪的区域。每个小区域用一个四位二进制代码表示,其中各位数字的含义如下; 小区域在裁剪区域之左,即xxmax,则c2=1,否则c2=0; 小区域在裁剪区域之下,即yymax,则c4=1,否则c4=0;,3直线的矢量裁剪方法 这种裁剪方法与上面所说的方法相类似,只是判别端点是否落在窗口框内所采用的过程不一样。在该算法中,同样用四条窗口边框直线把平面分割成九个区域,为了叙述算法过程方便起见,我们把这九个区域分别表上0、1、2、3、8号码。 4多边形裁剪的SutherlandHodgman算法 SutherlandHodgman算法是解决多边形裁剪的较好算法,其处理对象是多边形的顶点,依次用窗口的四条边框线对多边形进行裁剪,即先用一条边框线对整个多边形进行裁剪,得到一个或者若干个新的多边形,再用第二条边对这些新产生的多边形进行裁剪,如此进行下去,直到用四条边框线都裁剪完为止。,