三维坐标变换.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第二章 三维观察

三维观察坐标系

观察坐标系

为了在不同的距离和角度上观察物体,需要在用户坐标系下建立观察坐标系x,y,z(通常是右手坐标系)也称(View Reference

v v v

Coordinate)。如下图所示,其中,点p

(x,y,z

)为观察参考点(View

0 o o 0

ReferencePoint),它是观察坐标系的原点。

图1.1 用户坐标系与观察坐标系

依据该坐标系定义垂直于观察坐标系 z 轴的观察平面(view

v

palne),有时也称投影平面(projectionplane)。

图1.2 沿z 轴的观察平面

v

观察坐标系的建立

观察坐标系的建立如下图所示:

图1.3 法矢量的定义

观察平面的方向及z 轴可以定义为观察平面(viewplane)N

v

法矢量N: 在用户坐标系中指定一个点为观察参考点,然后在此

点指定法矢量N,即z 轴的正向。

v

法矢量V:确定了矢量N后,再定义观察正向矢量V,该矢量

用来建立y

v

轴的正向。通常的方法是先选择任一不平行于N的矢量

V,然后由图形系统使该矢量V投影到垂直于法矢量N的平面上,定义投影后的矢量为矢量V。

法矢量U:利用矢量N和V,可以计算第三个矢量U,对应于

x轴的正向。

z

的指定视图投影到显示设备表面上的过程来处理对象的描述。

世界坐标系

在现实世界中,所有的物体都具有三维特征,但是计算机本身只能处理数字,显示二维的图形,将三维物体和二维数据联系到一起的唯一纽带就是坐标。为了使被显示的物体数字化,要在被显示的物体所在的空间中定义一个坐标系。该坐标系的长度单位和坐标轴的方向要适合被显示物体的描述。该坐标系被称为世界坐标系,世界坐标系是固定不变的。

OpenGL中世界坐标用来描述场景的坐标,Z+轴垂直屏幕向外,X+从左到右,Y+轴从下到上。世界坐标系是右手笛卡尔坐标系统。我们用这个坐标系来描述物体及光源的位置。世界坐标系以屏幕中心为原点(0,0,0),长度单位这样来定:窗口范围按此单位恰好是(-1,-1)到(1,1)。

世界坐标系到观察坐标系

在三维观察流水线中,场景构造完成后的第一步工作是将对象描述变换到观察坐标系中。对象描述的转换等价于将观察坐标系叠加到世界坐标系的一连串变换。

平移观察坐标原点到世界坐标系原点。

进行旋转,分别让x 、y 和z 轴对应到世界坐标的x、

y、z 轴。

view

view

view w

w w

如果指定世界坐标点P=(x

0

,y,z

0 0

)为观察坐标原点,则将观察坐标

系原点移到世界坐标系原点的变换是

0?1 0 0 ?x?

0

?

???

1 0 ?y0?

?0

?

?0 0 1 ?z?

? 0?

??0 0 0 1 ??

将观察坐标系叠加到世界坐标系的组合旋转变换矩阵使用单位

向量u、v和n来形成。该变换矩阵为

?u u u 0?

??vx vy vz 0?

?

R?? x y z

?n n n 0?

1? x y z ?

1

?0 0 0 ?

这里,矩阵R的元素是uvn轴向量的分量。

将前面的平移和旋转矩阵乘起来获得坐标变换矩阵:

?u u u ?u?p?

vyz? x

v

y

z

yz? ?R??=? v v

y

z

?wc.vc ?nx n n

?

??0x 0y 0z

?v?p0?

???n?p0?

?

?

1 0??

该矩阵中的平移因子按u、v、n和P 的向量点积计算而得,P

0 0

代表从世界坐标系原点到观察原点的向量。换句话说,平移因子实在

每一轴上的负投影(观察坐标系中的负分量P)。这些矩阵元素的取值

0

?u ??

0

?u??

0

??xu?

0 x

??xv?

0 x

yu ?zu

0 y 0 z

yv ?zv

0 y 0 z

?u??

0

??xn?

0 x

yn?zn

0 y 0 z

矩阵将世界坐标系中的对象描述变换到观察坐标系。

投影变换

对象描述变换到观察坐标后,下一阶段是将其投影到观察平面上。投影变换就是把三维立体(或物体)投射到投影面上得到二维平面图形。平面几何投影主要指平行投影、透视投影以及通过这些投影变换而得到的三维立体的常用平面图形:三视图、轴视图以及透视图。图形软件一般都支持平行投影和透视投影两种方式。

在平行投影中(parallelprojection)中,坐标位置沿平行线变换到观察平面上。图4.1给出了用端点坐标P1和P2描述的线段的平行投影。

平行投影保持对象的相关比例不变,这

文档评论(0)

mph + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海谭台科技有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7CY11Y3K

1亿VIP精品文档

相关文档