第11讲(第4章图形变换透视投影)_第1页
第11讲(第4章图形变换透视投影)_第2页
第11讲(第4章图形变换透视投影)_第3页
第11讲(第4章图形变换透视投影)_第4页
第11讲(第4章图形变换透视投影)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学与技术系计算机科学与技术系计算机图形学计算机图形学第十一讲第十一讲08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学第四章第四章 图形变换图形变换 三维投影变换三维投影变换 -透视投影透视投影08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学透视图透视图透视投影返回返回08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学透视图透视图透视投影返回返回08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学透视图透视图透视投影返回返回08-09第二学期第二学期赤

2、峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、透视投影变换三、透视投影变换-透视的基本知识透视的基本知识v透视投影是一种中心投影法,在日常生活中,透视投影是一种中心投影法,在日常生活中,我们观察外界的景物时,常会看到一些明显的我们观察外界的景物时,常会看到一些明显的透视现象。透视现象。v如:我们站在笔直的大街上,向远处看去,会如:我们站在笔直的大街上,向远处看去,会感到街上具有相同高度的路灯柱子,显得近处感到街上具有相同高度的路灯柱子,显得近处的高,远处的矮,越远越矮。这些路灯柱子,的高,远处的矮,越远越矮。这些路灯柱子,即使它们之间的距离相等,但是视觉产生的效即使它们之间的距离

3、相等,但是视觉产生的效果则是近处的间隔显得大,远处的间隔显得小,果则是近处的间隔显得大,远处的间隔显得小,越远越密。观察道路的宽度,也会感到越远越越远越密。观察道路的宽度,也会感到越远越窄,最后汇聚于一点。这些现象,称之为透视窄,最后汇聚于一点。这些现象,称之为透视现象。现象。透视图08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 参数:投影方向,距离参数:投影方向,距离A ABB投影中心投影中心投影线投影线投影面v特点:特点: 产生近大远小的视觉效果,由它产生的图形产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。深度感强,看起来更加真实。

4、三、透视投影变换三、透视投影变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、透视投影变换三、透视投影变换v在介绍三维变换矩阵在介绍三维变换矩阵时,说到矩阵中的元素(时,说到矩阵中的元素(p , q , r)p , q , r)取非全时,能产生透视效果。取非全时,能产生透视效果。sdddrcccqbbbpaaa32132132132108-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 v透视投影投影方程透视投影投影方程yxz投影中心dxyPPyxz投影平面一点透视dr/1dzxdzxdx)|(|dzydzydy)|(|

5、1)/(dzxx1)/(dzyy100010000100001rT11111rzzrzyrzxzyx08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学. .透视变换矩阵透视变换矩阵(1) (1) 一点透视一点透视( (平行透视平行透视) ) 先设先设q q 0,p=r=0,0,p=r=0,对点对点 x y z x y z 进行变换:进行变换: 1 0 0 0 x y z 1 0 1 0 q =x y z qy+1 0 0 1 0 0 0 0 1 = x/(qy+1) y/(qy+1) z/(qy+1) 1 (齐次化)08-09第二学期第二学期赤峰学院计算机系赤

6、峰学院计算机系 计算机图形学计算机图形学现在来对的取值情况进行讨论:现在来对的取值情况进行讨论:当 y = 0 (在XOZ坐标平面内)x y z 1 = x 0 z 1 当 y x y z 1 = 0 1/q 0 1 * x/(qy+1) y/(qy+1) z/(qy+1) 1 *a. .透视变换矩阵透视变换矩阵08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学. .透视变换矩阵透视变换矩阵从以上结果可以看到:当值无限变从以上结果可以看到:当值无限变大时,所有点经过变换后均集中于大时,所有点经过变换后均集中于轴上的轴上的 1/1/q q 处,于是处,于是所有平

7、行于所有平行于轴的直线将延伸相交于此点。轴的直线将延伸相交于此点。该点该点( 0( 0,1/q 1/q ,0)0)称为称为灭点灭点。形成一个。形成一个灭点的透视称为一点透视,灭点的透视称为一点透视,亦称平行亦称平行透视。为了取得较好的效果,取透视。为了取得较好的效果,取 q q 0 0 。(让灭点位于轴的负半轴上)。(让灭点位于轴的负半轴上)(0,-1/q,0)XYZ08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学同样道理,当同样道理,当 p p 0,q=r=00,q=r=0时,则产生时,则产生的一个灭点在轴上的一个灭点在轴上(1/(1/p,0,0)p,0,

8、0)处处。在。在这种情况下,所有平行于轴的直线这种情况下,所有平行于轴的直线 将延伸交于该点。将延伸交于该点。当当 r r 0,p=q=00,p=q=0时,则产生的一时,则产生的一 个灭点在轴上个灭点在轴上(0,0,1/(0,0,1/r)r)处处。在这。在这种情况下,所有平行于轴的直线将种情况下,所有平行于轴的直线将延伸交于该点。延伸交于该点。. .透视变换矩阵透视变换矩阵08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学(2) (2) 两点透视两点透视( (成角透视) ) 如果在如果在 p , q , r p , q , r 中有两个非元素,中有两个非元素,

9、这时将会产生两个灭点,得到的透视这时将会产生两个灭点,得到的透视图称为两点透视,或称成角透视。图称为两点透视,或称成角透视。 例如:设例如:设p p 0, r 0, r 0, q= 0, 0, q= 0, 看透看透视变换的效果。视变换的效果。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 1 0 0 P1 0 0 P x y z 1 0 x y z 1 0 1 0 0 1 0 0 0 0 0 1 r 0 1 r 0 0 0 0 1 0 0 1=x y z px+rz+1 x y z px+rz+1 =x/(px+rz+1) y/(px+rz+1) z/(p

10、x+rz+1) 1=x/(px+rz+1) y/(px+rz+1) z/(px+rz+1) 1x y z 1x y z 1一个灭点在轴上的一个灭点在轴上的 1/1/p p 处;处;另另一个灭点在轴上的一个灭点在轴上的 1/1/r r 处。处。(2) (2) 两点透视两点透视( (成角透视) )08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学(3)(3)三点透视三点透视( (斜透视) ) 以此类推,当以此类推,当 p p、q q、r r三个元素全为三个元素全为非非 0 0 时,变换的结果将形成三点透时,变换的结果将形成三点透视。产生的三个灭点将分别位于轴视。产

11、生的三个灭点将分别位于轴上的上的 1/p 1/p 处、轴上的处、轴上的 1/q 1/q 处和处和轴上的轴上的 1/r 1/r 处。处。此时,投影平面与三坐标轴均不平行。此时,投影平面与三坐标轴均不平行。这时的三组平行线均产生灭点。这时的三组平行线均产生灭点。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学透视投影08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 可以简单的推断:可以简单的推断: 1 1、与一个坐标轴垂直的平面作为投影平面、与一个坐标轴垂直的平面作为投影平面的话,该平面上的投影一定是一点投影。的话,该平面上的

12、投影一定是一点投影。 2 2、与两个坐标轴相交且与第三个坐标轴不、与两个坐标轴相交且与第三个坐标轴不相交的平面作为投影平面的话,该平面上的投相交的平面作为投影平面的话,该平面上的投影一定是两点投影。影一定是两点投影。 3 3、与三个坐标轴都相交且不含有任何坐标、与三个坐标轴都相交且不含有任何坐标轴的平面作为投影平面的话,该平面上的投影轴的平面作为投影平面的话,该平面上的投影一定是三点投影。一定是三点投影。透视投影08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学透视投影透视投影v灭点:不平行于投影平面的平行线,经过透视灭点:不平行于投影平面的平行线,经过透视投

13、影之后收敛于一点,称为灭点投影之后收敛于一点,称为灭点. . 主灭点主灭点: :平行于坐标轴的平行线的灭点。平行于坐标轴的平行线的灭点。 一点透视一点透视 两点透视两点透视 三点透视三点透视特点:产生近大远小的视觉效果,由它产特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。生的图形深度感强,看起来更加真实。 灭点的个数灭点的个数?08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学. .生成透视投影图的方法生成透视投影图的方法生成透视图分两步进行:生成透视图分两步进行: 对立体进行透视变换;对立体进行透视变换;然后向然后向XOZXOZ坐标平

14、面作正投影。坐标平面作正投影。 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 q 0 0 0 0 0 0 0 q 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 108-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学v所以其变换过程用矩阵表示为:所以其变换过程用矩阵表示为:10010000000011000010000000011010000100001mqnlqqnml. .生成透视投影图的方法生成透视投影图的方法08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学(1)

15、(1)一点透视图的生成一点透视图的生成v在生成一点透视图时,为了避免特殊在生成一点透视图时,为了避免特殊位置透视,使产生的透视图立体感较位置透视,使产生的透视图立体感较好,通常要在进行透视变换前先将立好,通常要在进行透视变换前先将立体平移到一个合适的位置(例如离开体平移到一个合适的位置(例如离开坐标系中心),然后再进行透视变换。坐标系中心),然后再进行透视变换。在进行投影前位置不合适产生的结果08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学(2)(2)两点透视图的生成两点透视图的生成两点透视图的生成方法是:两点透视图的生成方法是: 先使立体绕轴旋转一个角度先

16、使立体绕轴旋转一个角度 ,以使得立体上原平行于以使得立体上原平行于坐标平面坐标平面XOZXOZ和和YOZYOZ的表面与投影面的表面与投影面XOZXOZ产生一定的倾斜产生一定的倾斜角(成角透视);角(成角透视);向向XOZXOZ投影面作透视投影面作透视投影。投影。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学v变换矩阵变换矩阵10000100cos00sinsin00cos1000010000000011000010000cossin00sincosqqqT(2)(2)两点透视图的生成两点透视图的生成08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系

17、 计算机图形学计算机图形学 在以上生成的变换矩阵中,有两个透在以上生成的变换矩阵中,有两个透视参数为非(视参数为非(qsinqsin , qcos , qcos ) ),故,故生成的透视图为两点透视。生成的透视图为两点透视。 在两点透视图中,只有原来与轴平在两点透视图中,只有原来与轴平行的立体上的棱线仍旧保持与轴平行的立体上的棱线仍旧保持与轴平行,其余的棱线(例如原来与轴及行,其余的棱线(例如原来与轴及轴平行的棱线)将倾斜(成角)。轴平行的棱线)将倾斜(成角)。(2)(2)两点透视图的生成两点透视图的生成08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学(3)

18、(3)三点透视图的生成三点透视图的生成三三点透视图的生成方法是:点透视图的生成方法是: 先使立体绕轴旋转一个角度先使立体绕轴旋转一个角度 ,再绕轴再绕轴旋转一个角度旋转一个角度 (类似于轴测类似于轴测变换),这样变换),这样使得立体上原平行于三使得立体上原平行于三个个坐标平面的表面均与投影面坐标平面的表面均与投影面XOZXOZ产产生一定的倾斜角;生一定的倾斜角;向向XOZXOZ投影面作透视投投影面作透视投影。影。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学v变换矩阵变换矩阵 1000sincos00coscossincos0sincossinsinsin

19、0cos10000100000000110000cossin00sincos000011000010000cossin00sincosqqqqT(3)(3)三点透视图的生成三点透视图的生成08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、视向变换三、视向变换 1 1、世界坐标系和观察坐标系、世界坐标系和观察坐标系 前面我们处理图形问题时通常使用的是笛卡前面我们处理图形问题时通常使用的是笛卡尔坐标系,这种坐标系一般称为尔坐标系,这种坐标系一般称为“世界

20、坐标系世界坐标系”或或“用户坐标系用户坐标系”。 以观察点(即视点)为原点,以观察点到以观察点(即视点)为原点,以观察点到物体的方向为物体的方向为z z轴,以水平向右且与轴,以水平向右且与z z轴垂直的轴垂直的方向为方向为x x轴,与轴,与x x轴和轴和z z轴垂直向上的方向做为轴垂直向上的方向做为y y轴,这样所成的坐标系称为观察坐标系。轴,这样所成的坐标系称为观察坐标系。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、视向变换三、视向变换 建立一个观察坐标系取决于两个因素,建立一个观察坐标系取决于两个因素,一个是观察点的位置,另外一个是观察一个是观察

21、点的位置,另外一个是观察方向。为了方便研究,通常将观察点到方向。为了方便研究,通常将观察点到世界坐标系的原点的方向规定为观察方世界坐标系的原点的方向规定为观察方向。向。2 2、视向变换、视向变换 把世界坐标系中的点把世界坐标系中的点P(x,y,z)P(x,y,z)变换变换为观察坐标系中的点为观察坐标系中的点Q(xQ(x* *,y,y* *,z,z* *) )的过的过程称为程称为“视向变换视向变换”08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、视向变换三、视向变换1.1.平移坐标系(设观察点为平移坐标系(设观察点为(x0,y0,z0)(x0,y0,z0)

22、)ExyzxwzwywO08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学T1= 1 0 0 0 0 1 0 0 0 0 1 0-x0 y0 -z0 1x1=x-x0y1=y-y0z1=z-z0三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学三、视向变换三、视向变换2 2、绕、绕x x轴旋转轴旋转9090ExyzxwzwywO08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学T2= 1 0 0 00 0 -1 0 0 1 0 00 0 0 1x2=x1y2=y1cos

23、90 -z1sin90z2= y1sin90 +z1 cos90三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学3 3、绕、绕y y轴旋转轴旋转- - 角角xwzwywOxyz三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学T3=cos 0 -sin 0 0 1 0 0 sin 0 cos 0 0 0 0 1sin=x 0/(x 02+y02)cos=y0/(x 02+y02)x3= x2cos+z2sin y3= y2z3= x2sin-z2 cos三、视向变换三、视向变换

24、08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学4 4、绕、绕x x轴逆时针旋转轴逆时针旋转 角角xwzwywOxyzE三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学T4= 1 0 0 00 cos -sin 00 sin cos 00 0 0 1x4= x3y4= y3 cos+z3sin z4= x3sin-z3 cossin=z 0/(x 02+y02+z02)cos = (x 02+y02) / (x 02+y02+z02)三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系

25、赤峰学院计算机系 计算机图形学计算机图形学5 5、改变、改变x x轴的方向轴的方向: :使其由原来的指向左使其由原来的指向左边改变为指向右边。边改变为指向右边。T5= -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1x* = -x4y* = y4z* = z4三、视向变换三、视向变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学四、任意点透视变换四、任意点透视变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学四、任意视点透视变换四、任意视点透视变换前面介绍的透视变换的数学方法中,重前面介绍的透视变换的数

26、学方法中,重要的问题在于如何选择好变换矩阵中的参要的问题在于如何选择好变换矩阵中的参数数 q q ,以使得生成的透视图的视觉效果以使得生成的透视图的视觉效果较好。(纯数学)较好。(纯数学)下面我们另从直观的角度来讨论透视图下面我们另从直观的角度来讨论透视图的问题。的问题。08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 设我们在空间观察任意一个点,并在视点设我们在空间观察任意一个点,并在视点和空间点之间设置一个平面作为投影面,和空间点之间设置一个平面作为投影面,那么视点和空间点的连线将穿透该平面而那么视点和空间点的连线将穿透该平面而留下一个穿点。我们把该穿点

27、作为空间点留下一个穿点。我们把该穿点作为空间点在投影面上的投影,称为透视投影。在投影面上的投影,称为透视投影。(见例图)(见例图)四、任意视点透视变换四、任意视点透视变换eyePP08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 为了方便讨论这个问题为了方便讨论这个问题,要把对象,要把对象置于合适的坐置于合适的坐标系(观察坐标系)中。标系(观察坐标系)中。(见例图)(见例图) 注:观察坐标系是一个左手系,具体情况参见注:观察坐标系是一个左手系,具体情况参见 “视向变换视向变换”部分。部分。四、任意视点透视变换四、任意视点透视变换OFYXOXYPZZP(x,y

28、,z)F即O-OA08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学 根据相似比例关系,有:根据相似比例关系,有:x/x = F/zx/x = F/z所以所以x= Fx= F x/zx/zy= Fy= F y/zy/z(在透视平面内,(在透视平面内,z= 0z= 0)上式说明,只要确定了透视平面的位置(),上式说明,只要确定了透视平面的位置(),对于空间任意点,都可以通过上式计算求得它的对于空间任意点,都可以通过上式计算求得它的透视投影点。并通过连接透视投影点绘制透视图。透视投影点。并通过连接透视投影点绘制透视图。四、任意视点透视变换四、任意视点透视变换08-

29、09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学并且从上式可以看出:并且从上式可以看出:(1)(1)透视坐标与透视坐标与 z z 值成反比,即值成反比,即 z z 值值越大,则透视坐标值越小。(这符合越大,则透视坐标值越小。(这符合实际情况)实际情况)(2)(2)的取值,决定了透视图的比例,的取值,决定了透视图的比例,可起到放大或者缩小透视图的作用。可起到放大或者缩小透视图的作用。 ( (这种方法与上面介绍的矩阵变换法是这种方法与上面介绍的矩阵变换法是否相通否相通) )四、任意视点透视变换四、任意视点透视变换08-09第二学期第二学期赤峰学院计算机系赤峰学院计算机系 计算机图形学计算机图形学我们设计一个矩阵,把式我们设计一个矩阵,把

温馨提示

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

评论

0/150

提交评论