首页计算机计算机图形学 03-3 第三章 图形变换3.pptx

03-3 第三章 图形变换3.pptx

页数:21页文件大小:281.0 KB来源: 计算机图形学ppt课件

本课件讲解三维对象映射为二维对象的投影变换:区分平行投影与透视投影,给出正交平行投影与glOrtho,推导透视投影坐标关系与glFrustum,介绍三类透视的消失点规律,并说明窗口区到视图区的坐标变换。

第三章图形变换封面,标示本章围绕投影变换与视口变换两部分内容展开
投影变换概述页,说明投影是把三维对象映射为二维对象的变换并区分平行与透视两类
两类投影对比图页,并排展示透视投影汇聚于投影中心与平行投影保持平行两种投影效果
查看本课件的文字版(共 21 页,供检索与复制)

第1页:图形变换:投影与视口

计算机图形学讲义 第3章 图形变换

第2页:投影变换概述

3 投影(project)变换

  • 投影是一种使三维对象映射为二维对象的变换。
  • 投影的要素除投影对象、投影面外,还有投影线。
  • 投影变换分为平行投影和透视投影两种:
    1. 平行投影变换:平行投影可以看成投影中心在无限远处的投影。
    2. 透视投影变换:投影射线汇聚于投影中心,或者说投影中心在有限远处的投影。这种投影比较有真实感。

第3页:透视投影与平行投影对比

透视投影与平行投影对比示意:透视投影的投影射线汇聚于投影中心,平行投影的投影线互相平行。

第4页:正交平行投影

3.1 平行投影—正交平行投影
正投影是指投影射线方向与投影平面垂直的平行投影。若投影面和 z 轴垂直,则去掉 z 变量便是三维物体的二维投影描述。

第5页:glOrtho正射投影函数

OpenGL 下正射投影函数 glOrtho

  • glOrtho (left, right, bottom, top, near, far)
  • 近裁剪平面左下角点三维空间坐标是 (left, bottom, −near),右上角点是 (right, top, −near)。
  • 正射投影的方向平行于 Z 轴,且视点朝向 Z 负轴。

第6页:透视投影

3.2 透视投影

第7页:

第8页:透视投影的坐标关系

设投影中心处于坐标系原点,投影平面与 Z 轴垂直并距原点距离为 d。可求得空间点 P(x0,y0,z0) 和投影平面上投影点 P′(xp,yp,zp) 的坐标关系。

第9页:glFrustum透视投影函数

OpenGL 下投射投影函数 glFrustum

glFrustum (left, right, bottom, top, near, far)

第10页:一点二点三点透视

透视投影分为三类:

  1. 一点透视:若投影面与正方体的两条相交边都平行,则该正方体投影后便产生一个主消失点。
  2. 二点透视:若投影面与正方体的一条边平行,则该正方体投影后便产生两个主消失点。
  3. 三点透视:若投影面与正方体的所有边都不平行,则该正方体投影后便产生三个主消失点。

第11页:实例3:投影坐标计算

实例3

有一正方体其 8 个顶点 ABCDA′B′C′D′ 的坐标依次为 {{200,200,100},{200,300,100},{300,300,100},{300,200,100},{200,200,0},{200,300,0},{300,300,0},{300,200,0}},以对角线 A′C 的中点 O 为固定点,绕 x 轴旋转 30 度,再绕 y 轴旋转 45 度。设投影中心处于 (0,0,−800),投影平面为 z = −100。分别计算旋转后的正方体平行投影后各顶点的坐标,透视投影后各顶点的坐标。

第12页:顶点变换与投影结果

对角线 A′C 的中点 O 的坐标为 (250, 250, 50)。

对正方体的八个顶点分别进行平行投影变换与透视投影变换:最后忽略 z 坐标,把 (xp, yp) 显示在二维平面上。

第13页:思考:投影平面不垂直于z轴

思考

若投影平面不与 z 轴垂直怎么办?

第14页:投影平面倾斜的处理

答

  • 设投影方向为 (A, B, C),则要先旋转坐标轴,使得 z 轴与投影方向 (A, B, C) 平行。
  • 如何旋转?可参考绕任意轴旋转的方法。

第15页:视口变换

4 视口变换

第16页:用户域和窗口区

4.1 用户域和窗口区
  • 用户域:程序员用来定义草图的整个自然空间(WD),人们所要描述的图形均在用户域中定义,是一个实数域,理论上是连续无限的。
  • 窗口区:用户指定的任一区域(W),窗口区 W 小于或等于用户域 WD,小于用户域的窗口区叫做用户域的子域。窗口可以有矩形、圆形、多边形等多种类型,也可以嵌套定义。

第17页:屏幕域和视图区

4.2 屏幕域和视图区
  • 屏幕域(DC):设备输出图形的最大区域,是有限的整数域。如图形显示器分辨率为 1024×768,则 DC 为 [0..1023]×[0..767]。
  • 视图区:任何小于或等于屏幕域的区域,用设备坐标定义在屏幕域中;窗口区显示在视图区,需做窗口区到视图区的坐标转换。视图区可以有圆形、矩形、多边形等多种类型,也可以嵌套。

第18页:窗口区到视图区的坐标变换

窗口区和视图区的坐标变换

  • 设窗口的四条边界 WXL、WXR、WYB、WYT;
  • 视图的四条边界 VXL、VXR、VYB、VYT;
  • 则用户坐标系下的点(即窗口内的一点)(Xw, Yw) 对应屏幕视图区中的点 (Xs, Ys),其变换公式如下。

第19页:

第20页:

第21页:本章作业

作业

有一正方体其 8 个顶点 ABCDA′B′C′D′ 的坐标依次为 {{200,200,100},{200,300,100},{300,300,100},{300,200,100},{200,200,0},{200,300,0},{300,300,0},{300,200,0}},绕经过点 {0,0,0} 和 {1,1,1} 的直线旋转 60 度。设投影中心处于 (0,0,−1000),投影平面为 z = −200。分别计算旋转后的正方体平行投影后各顶点的坐标,透视投影后各顶点的坐标。

顶部目录