第6章图形变换01-一般变换培训讲学_第1页
第6章图形变换01-一般变换培训讲学_第2页
第6章图形变换01-一般变换培训讲学_第3页
第6章图形变换01-一般变换培训讲学_第4页
第6章图形变换01-一般变换培训讲学_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章图形变换之一——一般变换2006年7月5日1上海交通大学计算机系何援军1.图形变换的基本描述2.图形变换的几何化表示3.投影与投影变换6.透视变换5.投射变换6.总结26.1图形变换的基本描述1.概述2.齐次坐标3.齐次坐标变换距阵4.矩阵级联5.图形变换的现状36.1.1概述所有的变换均基于点的变换。例如,一条线段的变换只要考虑它的两个端点的变换就行了采用向量、矩阵和齐次坐标的形式来描述图形的变换十分方便。一个变换是一个单一的数学实体,能够用一个单一的名或符号标识。两个变换能够被结合而产生一个具有二者功效的单一变换。例如变换T是平移,而变换R是旋转,则变换的结合允许决定一个变换A=TR,其功效是先平移然后旋转变换。5为了能用矩阵的形式统一描述图形变换,在计算机图形学中常采用齐次坐标的形式来描述空间的点。在n维空间中的一个问题,在n+1维空间中相应地也有一个问题,而在n+1维空间中却常常比n维空间中较易获得结果。二维点(x,y)的齐次表示是(hx,hy,h),这里h是任何一个非零因子,有时叫做比例因子。齐次点(a,b,c)被投射回复到二维时简单地就是(a/c,b/c),由比例因子c去除。6.1.2齐次坐标6在计算机中处理一个三维空间的“无穷远点”是困难的,但是可以容易地处理一个四维齐次空间的解析点,例如可以用向量:(1000) 表示x轴方向无穷远点(0100) 表示y轴方向无穷远点(0010) 表示z轴方向无穷远点(0001) 表示坐标原点这4个向量将构成四维齐次空间的单位矩阵6.1.2齐次坐标76.1.3齐次坐标变换距阵透视变换比例变换旋转、错切等平移变换齐次变换矩阵提供一个三维空间中包括平移、旋转、透视、投影、反射、错切和比例等变换在内的统一表达式,使得物体的变换可在统一的矩阵形式下进行。86.1.4矩阵级联一个变换是一个单一的数学实体——矩阵描述和标识。两个变换的结合用矩阵的级联而产生一个具有两者功效的单一变换。例如变换T是平移,而变换R是旋转,则变换的结合允许决定一个变换A=TR,其功效是先平移然后旋转变换。96.1.5图形变换的现状106.2图形变换的几何化表示

1.几何化表示的基本理论2.图形变换的几何表示3.图形变换几何表示的实施4.图形变换几何表示的应用5.图形变换几何表示与基本几何116.2.1基本理论——仿射变换仿射变换(Affinetransformation),一种线性变换“线性”(linearity)。线性是仿射变换下的不變性(直线变换后还是直线)。“关联性(incidence)是不变性)。(共线三点間的距離的分比不变,共线三点間距離的分比是不变量,平行线还是平行线)。仿射变换可以通过一系列原子变换的复合来实现:

平移(Translation)、缩放(Scale)翻转(Flip)、旋转(Rotation)剪切(Shear)等。126.2.1基本理论——仿射变换仿射变换(二维线性变换)的最一般形式为:

u=a1x+b1y+c1 v=a2x+b2y+c2

令 u=0和 v=0即可得到两条直线

L1:a1x+b1y+c1=0 L2:a2x+b2y+c2=0136.2.1基本理论——基本几何直线(直线段/向量)由其规范化的标准式方程:ax+by+c=0定义,其中a2+b2=1直线的方向选取这样一个方向:当人沿着这个方向行走时,他的左手方向为负区域(内部),右手方向为正区域(外部)。146.2.2图形变换的几何化表示由于平面上任两条相交有向直线均可构成新的坐标系统UV,这样u=a1x+b1y+c1v=a2x+b2y+c2

又可视为将坐标轴UV上的点全部相应地变换到坐标轴X和Y上156.2.2图形变换的几何化表示这两个坐标系间的坐标变换公式可由直线方程系数构成的齐次变换矩阵形式表出:于是,可将直线L1设为V轴直线L2设为U轴构成新的坐标系。166.2.2图形变换的几何化表示——三维若将上述结果推广到三维形式,则有:

x*=a1x+b1y+c1z+d1 y*=a2x+b2y+c2z+d2

z*=a3x+b3y+c3z+d3它将在原坐标系下的三个平面:

P1:a1x+b1y+c1z+d1=0

P2:a2x+b2y+c2z+d2=0 P3:a3x+b3y+c3z+d3=0变换到原坐标系所在的3个平面上。这3个平面构成的新坐标系。176.2.2图形变换的几何化表示——三维矩阵形式为:当且仅当: a1a2+b1b2+c1c2=0 a1a3+b1b3+c1c3=0 a2a3+b2b3+c2c3=0时,新坐标系统仍为直角坐标系。186.2.2图形变换的几何化表示——结论平面上任意2条相交(不共线)的向量构成一个新坐标系,新旧坐标系的坐标变换可由两条相交向量在原坐标系下的直线方程系数标出。几何变换它统一描述平移、旋转、剪切、对称和比例等变换。空间3个任意相交的(不共面)平面构成一个新坐标系,两者的坐标变换可由3个相交平面在原坐标系下的平面方程系数标出。196.2.3图形变换几何化表示的实施直线L1(设为V轴)的方向按正常的直线方向选取:当人沿着这个方向行走时,他的左手方向为负区域。直线L2(设为U轴)的方向由直线L1绕原点(两条直线的交点)顺时针方向旋转得到(一般情况下旋转角度≤90º)。206.2.3实施——直线方程建立建立直线程序:过两个已知点P1P2建立直线,使直线的右侧为正,左侧为负。intlpp(x1,y1,x2,y2,*a,*b,*c) 输入:floatx1,y1,x2,y2//直线起点,终点坐标 输出:float

*a,*b,*c

//所求直线的法线式方程系数

(a2+b2=1) 返回值:1正确返回

0P1=P2,(a,b,c)值无效216.2.3实施——直线方程建立原理过P1和P2两点的直线方程是:

(y2-y1)(x-x1)-(x2-x1)(y-y1)=0令:

a=(y2-y1)/D b=-(x2-x1)/D c=-(ax1+by1)若两点连线与X轴的夹角为α,则有:

a=sinα,b=-cosα,且a2+b2=1过P1P2两点的直线方程可记为:

ax+by+c=0

-(ax+by+c)=0为保证向量P1P2的左侧为负区域,需要在上述两式中选取一式。

226.2.3实施——直线方程建立原理构造一点位于向量P1P2左侧的点P(xp,yp):由P2绕P1逆时针旋转90°得到,有

xp=x1+Dcos(α+90)=x1-Dsinα=x1-D·a

yp=y1+Dsin(α+90)=y1+Dcosα=y1-D·b 点P(xp,yp)到直线的距离dp分别为:

dp=a(x1-D·a)+b(y1-D·b)+c=(ax1+by1+c)-D(a2+b2) =0-D·1=-D<0

dp=-a(x1-D·a)-b(y1-D·b)-c=-(ax1+by1+c)+D(a2+b2) =0+D·1=+D>0显然,为了保证直线的左侧为负,直线方程必须选取:ax+by+c=0236.2.3实施——定义另一种直线建立点斜式直线方程:过一给定点P(xp,yp)且与X轴的夹角为α的直线,它的左侧为负区域。 intlpax(floatxp,floatyp,floatalpha,

float*a, float*b, float*c)246.2.4应用之一——坐标系的旋转变换设通过坐标原点的两条正交直线与X轴的夹角分别为α和(α+90°),以前一条为X*轴,后一条为Y*轴(注意X*的角度):lpax(0.0,0.0,alpha+HalfPI,&a1,&b1,&c1); //Y*lpax(0.0,0.0,alpha+PI,&a2,&b2,&c2); //X*

256.2.4应用之二——一向量为U轴,其中垂线为V轴以向量P1P2为U轴,它的中垂线为V轴的右手坐标系变换矩阵由点P2向P1作直线L1为U轴; lpp(x2,y2,x1,y1,&a2,&b2,&c2);过点P1,P2的中点作直线L1的垂直线L2为V轴: a1=b2;b1=-a2;c1=-(a1(x1+x2)+b1(y1+y2))/2.0;266.2.4应用之三——剪切变换变换矩阵y:lpax(0.0,0.0,HalfPI+alphaY,&a1,&b1,&c1);x:lpax(0.0,0.0,PI+alphaX,&a2,&b2,&c2);276.2.4应用之四——绕任意轴的三维旋转变换绕Y轴旋转α角的标准旋转变换矩阵为: Ry=三维空间中绕任意轴的旋转变换可由下列三步达到:先平移、再2次绕新坐标轴旋转等3步建立以该任意轴为Y轴的新坐标系;在新坐标系下执行绕Y轴旋转α角的标准绕轴旋转变换;将该结果经过相对于第1步逆序的3次逆变换得到初始坐标轴下的变换结果。整个操作将由7个(不考虑平移时5个)矩阵相乘得到。286.2.4应用之四——绕任意轴的三维旋转变换Step1:将坐标系OXYZ平移(X0Y0Z0)形成新坐标系P0X1Y1Z1,其坐标系变换为:B01=296.2.4应用之四——绕任意轴的三维旋转变换Step2:将将坐标系P0X1Y1Z1绕Y1旋转αy角形成新坐标系P0X2Y2Z2。其坐标系变阵为:

B12=306.2.4应用之四——绕任意轴的三维旋转变换Step3:将坐标系P0X2Y2Z2绕X2轴旋转αX角,形成新坐标系P0X3Y3Z3,其坐标系变换阵为:

B23=316.2.4应用之四——绕任意轴的三维旋转变换326.2.4应用之四——绕任意轴的三维旋转变换336.2.4应用之四——绕任意轴三维旋转变换几何化表示1)构筑向量P1P2的单位向量(a1,b1,c1)

a1=(x2-x1)/D,b1=(y2-y1)/D,c1=(z2-z1)/D D=2)构筑与P1P2垂直的单位向量(a2,b2,c2)

a2=,b2=,c2=03)构筑第三个单位向量(a3,b3,c3) (a3,b3,c3)

=(a1,b1,c1)×(a2,b2,c2)34绕任意轴P1P2旋转的线性变换矩阵

R=Txyz_x*y*z*RxT-1xyz_x*y*z* =其中: d1=-(a1x1+b1y+c1z1) D1=-(a1d1+a2d2+a3d3) d2=-(a2x1+b2y1+0·z2) D2=-(b1d1+b2d2+b3d3) d3=-(a3x1+b3y1+c3z1) D3=-(c1d1+c3d3)绕任意轴的旋转变换由7个(不包含平移时则为5个)矩阵相乘减少到3个矩阵相乘。6.2.4应用之四——绕任意轴三维旋转变换几何化表示356.2.5图形变换几何化表示与基本几何用构成坐标系的向量的方程系数统一表示两坐标系间的齐次坐标交换矩阵元素,而不理会“旋转变换的角度、平移变换的增量”等等变换参数的特别涵义。将图形变换与基本几何有机地联系在一起,使图形变换与基本几何的定义与求解函数统一。便于记忆、便于教学、便于应用、便于软件系统的统一编制,提高系统的稳定性。实际应用中,只要用有向直线(平面)求解系列函数即可构筑图形变换齐次矩阵的元素。366.3投影与投影变换1.投影变换与深度坐标现状讨论建议2.投影示意图的讨论典型的正投影错误图示错误的透视投影示意图正确图示图示原理376.3.1投影变换与深度坐标——现状T斜等测==前2个矩阵是三维空间内的变换此变换必须有深度坐标。第3个矩阵用作投影变换系三维到二维的变换T斜等测定义为轴测投影变换矩阵386.3.1投影变换与深度坐标——现状投影变换的目的是显示图形,可以不考虑第三维(深度)坐标,因此几乎所有已出版的此类书籍均采用了以下投影变换矩阵。但投影变换往往和三维图形处理(例如隐藏线消除等)联系在一起,而这些图形处理必须有完整的深度信息。396.3.1投影变换与深度坐标——讨论三维观测流水线的处理过程均须特别注意投影要放在隐藏线消除的处理之后,即深度信息必须在投影前利用完毕,投影后不能再用。其实际处理过程是:①先实行“三维空间到自身的变换”(这个变换必须有深度坐标)②图形处理(例如隐藏线消除)③实行“从三维到二维的变换”,即无深度的“投影变换”④显示。406.3.1投影变换与深度坐标——讨论如果使用“轴测投影变换矩阵”或“透视投影变换矩阵”,则意味着将三维观测流水线的次序变成:三维观测流水线的处理过程:①三维空间变换②图形处理③无深度的“投影变换”

④显示①三维空间变换③无深度的“投影变换”

②图形处理④显示416.3.1投影变换与深度坐标——建议这种把第三维置为0的办法在三维处理中就失去了深度坐标,损失了1/3的有效信息。因此,建议仍采用下列完整的变换公式:(UVWH)=(xyz1)=得到的(UVWH)齐次坐标信息可根据需要向某一方向作正投影,第三维信息也是完整的。426.3.1投影变换与深度坐标——建议取消所谓“轴测投影变换矩阵”“透视投影变换矩阵”等的提法。“投影变换”将只用于理论推导三维观测流水线处理中不需要深度信息的场合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论