第六章 投影变换
- 格式:pps
- 大小:137.50 KB
- 文档页数:13
投影变换投影变换就是要确定一个取景体积,其作用有两个:1). 确定物体投影到屏幕的方式,即是透视投影还是正交投影。
2). 确定从图象上裁剪掉哪些物体或物体的某些部分。
投影变换包括透视投影和正交投影(平行投影)。
●透视投影透视投影的示意图如下,其取景体积是一个截头锥体,在这个体积内的物体投影到锥的顶点,用glFrustum()函数定义这个截头锥体,这个取景体积可以是不对称的,计算透视投影矩阵M,并乘以当前矩阵C,使C=CM。
void glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);该函数以透视矩阵乘当前矩阵left, right 指定左右垂直裁剪面的坐标。
bottom,top 指定底和顶水平裁剪面的坐标。
near,far 指定近和远深度裁剪面的距离,两个距离一定是正的。
程序函数gluPerspective()可以创建一个与调用glFrustum()所得到的同样形状的视图体,它创建的是一个沿视线关于x和y轴均对称的平截台体,在很多实际应用中都采用函数gluPerspective()。
void gluPerspective(GLdouble fovy,GLdouble aspect, GLdouble zNear,GLdouble zFar);fovy是在x-z平面内视区的角度,其值必须在区间【0.0,180.0】内。
Aspect为长宽比,是平截台体的宽度与高度之比。
zNear和zFar的值是视点(沿z轴负向)与两个裁剪平面的距离。
参数恒为正。
图1透视投影示意图●正交投影正交投影的示意图见下:其取景体积是一个各面均为矩形的六面体,用glOrtho()函数创建正交平行的取景体积,计算正交平行取景体积矩阵M,并乘以当前矩阵C,使C=CM。
void glOrtho(Gldouble left,Gldouble right,Gldouble bottom,Gldouble top,Gldoublenear,Gldouble far);该函数以正交投影矩阵乘当前矩阵。
投影变换由于数据源的多样性,当数据与我们研究、分析问题的空间参考系统(坐标系统、投影方式)不一致时,就需要对数据进行投影变换。
同样,在对本身有投影信息的数据采集完成时,为了保证数据的完整性和易交换性,要对数据定义投影。
空间数据与地球上的某个位置相对应。
对空间数据进行定位,必须将其嵌入到一个空间参照系中。
因为GIS 描述的是位于地球表面的信息,所以根据地球椭球体建立的地理坐标(经纬网)可以作为空间数据的参照系统。
而地球是一个不规则的球体,为了能够将其表面的内容显示在平面的显示器或纸面上,就必须将球面的地理坐标系统变换成平面的投影坐标系统当系统使用的数据取自不同地图投影的图幅时,需要将一种投影的数字化数据转换为所需要投影的坐标数据。
投影转换的方法可以采用:1.正解变换通过建立一种投影变换为另一种投影的严密或近似的解析关系式,直接由一种投影的数字化坐标x、y 变换到另一种投影的直角坐标X、Y。
2.反解变换即由一种投影的坐标反解出地理坐标(x、y→B、L),然后再将地理坐标代入另一种投影的坐标公式中(B、L→X、Y),从而实现由一种投影的坐标到另一种投影坐标的变换(x、y→X、Y)。
3.数值变换根据两种投影在变换区内的若干同名数字化点,采用插值法,或有限差分法,最小二乘法、或有限元法,或待定系数法等,从而实现由一种投影的坐标到另一种投影坐标的变换。
目前,大多数GIS 软件是采用正解变换法来完成不同投影之间的转换,并直接在GIS 软件中提供常见投影之间的转换。
借助ArcToolbox 中Projections and Transformations工具集中的工具,可以实现对数据定义空间参照系统、投影变换,以及对栅格数据进行多种转换,例如翻转(Flip)、旋转(Rotate)和移动(Shift)等操作。
1. 定义投影定义投影(Define Projection),指按照地图信息源原有的投影方式,为数据添加投影信息。
§3旋转法如图所示,空间点A
绕直线OO旋转,点A称
为旋转点,直线OO称为
旋转轴。
自A点向OO轴
引垂线,其垂足O称旋
转中心,AO称旋转半径,
A点的旋转轨迹是以O为
圆心,以AO为半径的圆
周,称为轨迹圆,轨迹
圆所在的平面与旋转轴
垂直。
按旋转轴与投影面的相对位置不同,旋转法分为:
1)绕垂直于投影面的轴线旋转,简称绕垂直轴旋转。
2)绕平行于投影面的轴线旋转,简称绕平行轴旋转。
3)绕一般位置的轴线旋转。
3.1 点的旋转
如图所示,点A绕垂直于V面的OO轴(正垂轴)旋转,其V投影反映轨迹圆实形,而H投影为过A点且平行于X轴的直线段,其长度等于轨迹圆的直径。
如图所示,点A绕铅垂轴旋转,其H投影反映轨迹圆实
形,即H投影a沿圆周旋转θ角到a
1,其V投影a′沿投影
轴的平行线移动至a
1’,a′a
1
’∥OX。
由上可知点的旋转规律:当点绕垂直轴旋转时,点在与旋转轴垂直的那个投影面上的投影作圆周运动,而另一投影则沿与旋转轴垂直的直线移动。
3.2 直线的旋转
直线的旋转,仅需使属于
该直线的任意两点遵循绕同一
轴、沿相同方向、转同一角度
的规则作旋转,然后,把旋转
后的两个点连接起来。
如图所示,直线AB绕铅垂
轴OO按逆时针方向旋转θ角,
也就是使A、B两点分别绕OO轴
逆时针旋转θ角,按照点的旋
转规律求得a
1b
1
、a
1
’b
1
’。
直线旋转的基本性质
1)直线绕垂直轴旋转时,直线在旋转轴所垂直的投影面上的投影长度不变。
2)直线对旋转轴所垂直的那个投影面的倾角不变。
3)直线在旋转轴所平行的投影面上的投影长度及对该投影面的倾角都改变。
3.2.1 把一般位置直线旋转成投影面平行线
直线绕垂直轴旋转一次,就能改变直线对一个投影面的倾角,因此,用绕垂直轴旋转的方法,求一般位置直线的实长及对投影面的倾角时,只要旋转一次即可实现。
[例1]已知一般位置直线AB的两投影,试求直线AB的实长和α角
分析:欲求一般位置直线AB的实长和α角,需把直线AB绕铅垂轴旋转成正平线。
为了作图简便,使该轴过直线的一个端点,如A点,那么,只旋转B点即可。
作图步骤:
1)过点A作铅垂轴OO:a′∈o′o′,o′o′⊥OX
2)求新投影b
1、b’
1
:将水平投影b以o(o与a重合)
为圆心,ab为半径旋转至b
1,ab
1
∥OX,b
1
’沿OX轴平
行线平移至b’。
3)连接a’b
1’、ab
1
;a′b
1
’反映AB的实长。
4)确定α角:a′b
1
’与OX轴的夹角α即为所求。
[例2]已知一般位置直线AB的两投影,试求直线AB的β角分析:欲求一般位置
直线的β角,需把直线AB
绕正垂轴旋转成水平线。
3.2.2 把投影面平行线旋转成投影面垂直线
某投影面的平行线绕该投影面的垂直轴旋转时,始终保持与该投影面平行,而能改变对另一投影面的倾角。
所以投影面平行线可经一次旋转为投影面垂直线。
[例3]试将正平线AB旋转成为铅垂线
分析:正平线和铅垂线都平行于V面,因此,在旋转过程中,直线对V面的倾角应保持不变,只改变它对H面的倾角,所以应取正垂线为旋转轴。
作图步骤:
1)过点A作正垂轴OO:a∈oo,oo⊥OX;
a′与o′重合
2)以OO为轴,将AB旋转成铅垂线:即将正面投影
b′沿圆周(以a′为圆心,以a′b′为半径)
旋转至b
1’。
3)连接b
1’a′(b
1
′a′⊥OX),水平投影
a与b
1
重合。
3.3 平面的旋转
平面的旋转是通过旋
转该平面所含不共直线的
三个点来实现的,旋转时,
必须遵循同轴、同方向、
同角度的规则。
平面的旋转性质:
1)平面绕垂直轴旋转时,平面在旋转轴所垂直的投影面上的投影,其形状和大小都不变。
2)平面对旋转轴所垂直的那个投影面的倾角不变。
3)平面的另一个投影,其形状和大小发生改变,并且,该平面对旋转轴所不垂直的那个投影面的倾角也改变。
3.3.1 把一般位置平面旋转成投影面垂直面
只要将平面内的一条投影面平行线旋转成垂直于某投影面,则平面就垂直于该投影面。
[例1]试求一般位置平面
ABC对V面的倾角β
分析:欲求一般位置平面ABC对V面的倾角β,须将平面ABC旋转成为铅垂面,为此,应在平面内取一条正平线(如CD),只要将正平线CD绕正垂轴(含C点)旋转成为铅垂线,那么平面ABC就旋转成为铅垂面。
作图步骤:
1)含点C作正垂轴OO:C∈OO,oo⊥OX;c′与o′重合
2)作平面ABC内的正平线CD:cd∥OX,并求出c′d′。
3)求平面的新投影:将c′d′旋转至c’d
1’,c’
d
1
’⊥OX,a、b旋转相同的角度,平面△ABC就
成为铅垂面,它的水平投影a
1cb
1
积聚成一直线。
正面
投影a′、b′依三同原则旋转至a
1’、b
1
’位置。
4)求β角:a
1cb
1
与OX轴的夹角β即为所求。
[例2]试求一般位置平面ABC对H面的倾角α分析:欲求一般位置平
面ABC对H面的倾角α,需
把平面ABC旋转成为正垂面。
为此应在平面内取一条水平
线CD,只要将水平线CD绕
铅垂轴(含C点)旋转成为
正垂线,那么,平面ABC就
旋转成为正垂面。
3.3.2 把投影面垂直面旋转成为投影面平行面
投影面垂直面绕同一投影面的垂直轴旋转时,可改变垂直面对另一投影面的倾角。
所以只要经一次旋转,就能使垂直面旋转成为另一投影面的平行面。
[例3]试将正垂面ABC
旋转成为水平面
分析:欲求正垂面△ABC的实形,应将ABC平面旋转成为水平面,即需改变平面对H面的倾角,所以旋转轴为正垂线。
作图步骤:
1)过点A作正垂轴OO,a∈oo,oo⊥OX,a′与o′重合。
2)求平面的新投影:将正面投影b′、c′以a′
为圆心旋转,使a’b
1’c
1
’∥OX。
同时求出水平
投影c
1、b
1
,△ab
1
c
1
就是△ABC的实形。
3.4 旋转法的应用
[例1]试在平面ABCD内过点M作一直线MN,使其与V面的倾角为45°
分析:过点M作β=4
5°的直线MN会有若干条,
但含于平面ABCD内的直线,
却是有确定解的,为此,包
含M点任作一水平线MN
1,
使MN
1直线与V面的倾角β=
45°;然后,将N
1点旋转
到平面ABCD上,为保持β=45°,旋转轴应为过M点的正垂线。
作图步骤:
1)作β=45°的水平线MN
1:作mn
1
,使mn
1
与OX轴的夹角为45°,m′n
1
’∥OX。
2)过点M作正垂轴OO:m∈oo,oo⊥OX;m′与o′重合。
3)将正面投影n
1
’旋转至a′b′上的n′位置,同时求出水平投影n,n∈ab。
4)连接m′n′,mn,即为所求。