投影矩阵的定义

投影矩阵的定义
投影矩阵的定义

视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。对于透视投影,视锥可以被初始化成金字塔形,将摄像机放在顶端。这个金字塔再经过前、后两个剪切面的分割,位于这两个面之间的部分就是视锥。只有位于视锥内的对象才可见。

视锥由凹视野(

在上图中,变量

投影矩阵是一个典型的缩放和透视矩阵。投影变换将视锥变换成一个直平行六面体的形状。因为视锥的近处比远处小,这样就会对靠近摄像机的对象起到放大的作用,也就将透视应用到了场景当中。

在视锥中,摄像机与空间原点间的距离被定义为变量

视矩阵将摄像机放置在场景的原点。又因为投影矩阵需要将摄像机放在

将两个矩阵相乘,得到下面的矩阵:

下图显示了透视变换如何将一个视锥变换成一个新的坐标空间。注意:锥形体变成了直平行六面体,原点从场景的右上角移到了中心。

在透视变换中,

这个矩阵基于一定的距离(这个距离是从摄像机到邻近的剪切面)对对象进行平移和旋转,但是它没有考虑到视野(

在这个矩阵中,

在程序中,使用视野角度来定义x和y缩放系数比使用视口的水平和垂直尺寸(在摄像机空间中)并不方便多少。下面两式使用了视口的尺寸,并且与上面的公式相等:

在这些公式中,Zn表示邻近的剪切面的位置,变量Vw和Vh表示视口的高和宽。这两个参数与

D3DVIEWPORT2结构中的dwWidth和dwHeight成员相关。

不管你使用那个公式,将同世界和视变换一样,可以调用下面的

D3DMATRIX ProjectionMatrix(const float near_plane,// distance to near clipping plane

const float far_plane,// distance to far clipping plane

const float fov_horiz,// horizontal field of view angle, in radians

const float fov_vert)// vertical field of view angle, in radians {

float h, w, Q;

w = (float)cot(fov_horiz*0.5);

h = (float)cot(fov_vert*0.5);

Q = far_plane/(far_plane - near_plane);

D3DMATRIX ret = ZeroMatrix();

ret(0, 0) = w;

ret(1, 1) = h;

ret(2, 2) = Q;

ret(3, 2) = -Q*near_plane;

ret(2, 3) = 1;

return ret;

} // end of ProjectionMatrix()

一旦创建完了矩阵,你需要调用

一个顶点经过世界、观察和投影变换之后,

下图展示了一个不适合的投影矩阵,和一个经过缩放的适合的矩阵:

在前面的矩阵中,所有的变量都被假定为非零。有关雾化的内容见“目相关对基于

Z的深度”。有关基于W的深度缓冲见“什么是深度缓冲?”

注:Direct3D在基于W的深度运算时使用当前设置的投影矩阵。因此,程序必须设置一个适合的矩阵来的导向要的基于W的特性,即使它们没有使用Direct3D变换管道。4.4 一个W-Friendly投影矩阵Direct3D 立即模式可以利用这个顶点的W成分执行雾化效果,并在深度缓冲中执行基于深度的运算。这样的运算需要投影矩阵将W规范化等价于世界空间的Z。简而言之,如果你的投影矩阵的(3,4)系数不是1,那么你就必须用(3,4)系数的倒数对所有的系数进行缩放。如果没有提供一个适当的矩阵,那么雾化效果和深度缓冲就不能得到正确运用。(“什么是投影矩阵?”中提供的矩阵是适合于)基于W的运算的。)

IDirect3DDevice3::SetTransform方法来设置它,同时将第一个参数设置为

D3DTRANSFORMSTATE_PROJECTION。详细内容见“设置变换”。4.3 设置投影矩阵ProjectionMatrix例程函数又四个输入参数,它们用来设置前后剪切面,和视野的水平与垂直角度。视野角度应该比π弧度(180度)小。Zn值尽量设的大一些是很重要的,因为当z值很接近时,大多数情况下是难以分辨的,由一个取巧的方法,就是在进行深度比较时使用16位z-buffer。Direct3D中,投影矩阵的第(3,4)元素不能为负数。IDirect3DDevice3::SetTransform方法来设置透视变换,详细内容见“设置变换”。Zn是临近剪切面的z 值。变量w、h和Q的意义如下(注意:fovw和fovh表示视口的水平和垂直视野,用弧度标示):x-与y-方向的限制是-1和1。z-方向的限制是前表面为0,后表面为1。field-of-view),也没有考虑到对象的z-值可能会相同,从而使深度比较变得困难。下面的矩阵讨论了这一问题,并且调整顶点来说明视口的高宽比例:(0, 0, -D),那么它就要将向量沿z-轴平移-D的距离,如上面右图所示:D是从摄像机到空间原点的距离,这个空间是在集合管道的最末端经过视变换得到的空间。要了解变量D如何被用来建立投影矩阵,请看“什么是投影变换?”部分。4.2 什么是投影矩阵?D。开始定义透视投影的矩阵时,可以象下面左图这样来使用变量D:fov-field of view)和前后剪切面的位置来进行定义:视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。对于透视投影,

投影原理应用

情境二:制图标准应用训练子情境二:投影原理应用 一、投影的概念 在日常生活中,人们经常可以看到,物体在阳光或灯光的照射下,就会在地面或墙面上留下影子。这种影子的内部灰黑一片,只能反映物体外形的轮廓,而上部形状则被黑影所代替,不能表达物体的本来面目,如图a所示。 人们对自然界的这一物理现象加以科学的抽象和概括,把光线抽象为投影线,把物体抽象为形体(只 研究其形状、大小、位置,而不考虑它的物理性质和化学性质的物体),把地面抽象为投影面,即假设光线能穿透物体,而将物体表面上的各个点和线都在承接影子的平面上落下它们的影子,从而使这些点、线的影子组成能够反映物体形状的“线框图”,如图b所示。我们把这样形成的“线框图”称为投影。 把能够产生光线的光源称为投影中心,光线称为投影线,承接影子的平面称为投影面。这种把空间形体转化为平面图形的方法称为投影法。 要产生投影必须具备:投影线、形体、投影面。这就是投影的三要素。

1、投影的分类 根据投影线之间的相互关系,可将投影分为中心投影和平行投影。 1)中心投影 当投影中心S在有限的距离内,所有的投影线都交汇于一点,这种方法所产生的投影,称为中心投影,如图所示。 2)平行投影 把投影中心S移到离投影面无限远处,则投影线可视为互相平行,由此产生的投影称为平行投影。平行投影的投影线互相平行,所得投影的大小与物体离投影中心的距离无关。

根据投影线与投影面之间的位置关系,平行投影又分为斜投影和正投影两种:投影线与投影面倾斜时称为斜投影,如图a所示。投影线与投影面垂直时称为正投影,如图b所示。 a b 二、正投影法基本原理 工程上绘制图样的方法主要是正投影法。这种方法画图简单,画出的图形真实,度量方便,能够满足设计与施工的需要。 用一个投影图来表达形体的形状是不够的。如下图所示,四个形状不同的物体在投影面H上具有相同的正投影,单凭这个投影图来确定物体的唯一形状,是不可能的。 如果对一个较为复杂的形体,只向两个投影面做投影时,其投影就只能反映它两个面的形状和大小,

投影定义与坐标转换

GIS/RS在地理学中的应用 一、作业题目:基础03 坐标定义与投影变换 时间:2018 年9 月20 日 一、作业内容及要求概述 基础03 坐标定义与投影变换 1.数据文件 ① idll.shp,(Idaho 州的轮廓图) ② stationsll.shp,(Idaho 州的滑雪道) ③ snow.txt,(Idaho 州 40 个滑雪场的经纬度值) 2.GIS操作 ①按要求更改文件投影的 ②给文件定义投影 ③用经纬度信息文本生成指定投影地点分布图 3. 作业报告总结以下内容 ①将 idll.shp 的投影变换为Idaho 州横轴麦卡托坐标系( Idaho Transverse Mercator, IDTM)IDTM参数设置如下: Projection Transverse Mercator Datum NAD83 Units meters Parameters scale factor: 0.9996 central meridian: -114.0 reference latitude: 42.0

false easting: 2,500,000 false northing: 1,200,000 ②将IDTM坐标系统应用到stationsll.shp 上 用snow.txt 生成一个UTM投影(Nad 1983UTM Zone11N)的滑雪场分布图 二、工作方法及技术流程 (思路、方法、主要操作步骤、技术流程等) ①将 idll.shp 的投影变换为Idaho 州横轴麦卡托坐标系 1:右键单击属性,查看idll属性其坐标系统信息。元数据页中坐标系统已经为GCS_North_American_1927 2:接下来将idll.shp投影到IDTM坐标系统。在ArcToolbox中Data Manager Tools =>Projections and Transformations=>Features=>Project

摄像机内外参计算过程

摄像机内外参计算过程 罗海风2011-2-28 1.对内参的初始化: 涉及函数:init_intrinsic_param_fisheye.m 输入:x_1,x_2,x_3,…--角点的图像坐标,X_1,X_2,X_3,…--角点的世界坐标; 输出:所有内参,包括摄像机焦距fc,摄像机坐标系原点在图像上的坐标cc,几何畸变系数kc,斜交系数alpha_c,摄像机矩阵KK(包含以上系数)。 焦距的初始值:fc= max(,) _ max(,) nx ny f init nx ny π π ?? ?? =?? ?? ?? ?? 原点坐标的初始值设为图像中心处,即cc= 0.50.5 _ 0.50.5 nx c init ny - ?? =?? - ?? 计算内参时不考虑畸变,畸变系数初始值为零,即kc= 0 _ 0 k init ?? ?? ?? = ?? ?? ?? 不考虑摄像机坐标轴夹角非正交情况,即alpha_c=_0 alpha init= 内参数矩阵初始值 max(,) 00.50.5 max(,) 00.50.5 001 nx ny nx nx ny KK ny π π ?? - ?? ?? ?? =- ?? ?? ?? ?? ?? -------------------(1)

2.对外参的初始化: 涉及函数:comp_ext_calib_fisheye.m 功能:主要是调用compute_extrinsic_init_fisheye.m 和compute_extrinsic_refine_fisheye.m compute_extrinsic_init_fisheye.m 输入:像点的世界坐标和图像坐标x_kk 和X_kk,以及所有内参fc,cc,kc,alpha_c; 输出:所有外参初始值,包括平移矩阵Tckk ,旋转矩阵Rckk 和旋转向量omckk compute_extrinsic_refine_fisheye.m 输入:像点的世界坐标和图像坐标x_kk 和X_kk,最大迭代次数MaxIter 以及所有内参fc,cc,kc,alpha_c; 输出:所有外参初始值,包括平移矩阵Tckk ,旋转矩阵Rckk 和旋转向量omckk 对像点世界坐标和图像坐标进行整理(整理过程考虑到坐标变换和畸变模型,涉及normalize_pixel_fisheye .m 输入:像点图像坐标x_kk,所有内参fc,cc,kc,alpha_c;输出:标准化无畸变图像坐标xn )。 坐标变换首先按照原点坐标进行线性映射,转换成以焦距为单位: 111 222___x kk cc fc x distort x kk cc fc -????? ?=-?????? 然后校正相机平面和图像平面不平行带来的误差: 122_____x distrot alpha c x distrot x distort x distrot -??? =???? 最后进行畸变补偿:(调用函数comp_fisheye_distortion.m 输入:畸变的像点图像坐标xd ,畸变系数k ; 输出: 无畸变的像点图像坐标x ) xd 是畸变后的像素坐标,令__theta d theta theta d == 进入循环20次的补偿迭代,每次循环中有 12 24682468 1121314112223242__11theta d theta d theta k theta k theta k theta k theta k theta k theta k theta k theta ??=??++++++++?? ,其中k 为畸变系数。本程序中,只考虑径向畸变不考虑切向畸变,k 虽然是5x1矢量,但是 最后一位即切向畸变系数没有使用。 然后有1212tan()tan()__theta theta scaling theta d theta d ?? =? ??? 111 1221211 2222Np Np Np Np xd scaling xd scaling xd scaling xn xd scaling xd scaling xd scaling ?? =? ??? 畸变补偿结束。 得到标准化无畸变的世界坐标X_new 和图像坐标xn 。 由这两组坐标计算得到透视投影矩阵H(计算过程见摄像机定标程序中透视投影矩阵H 的计算过程.doc ),并对H 进行整理得到 ((:,1))()((:,2))H H H norm H sc mean norm H = =???? ??

矩阵投影与最小二乘方法

题目:《神奇的矩阵——矩阵投影与最小二乘方法》 学校:哈尔滨工程大学 姓名:黎文科 联系方式: QQ群:53937814 联系方式: 190356321@https://www.360docs.net/doc/4e5407314.html,

矩阵投影与最小二乘方法 最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用需要。在早期数理统计方法的发展中,这两门科学起了很大的作用。丹麦统计学家霍尔把它们称为“数理统计学的母亲”。此后近三百年来,它广泛应用于科学实验与工程技术中。美国统计史学家斯蒂格勒( S. M. Stigler)指出, 最小二乘方法是19世纪数理统计学的压倒一切的主题。1815年时,这方法已成为法国、意大利和普鲁士在天文和测地学中的标准工具,到1825年时已在英国普遍使用。 追溯到1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。高斯于其1809年的著作《关于绕日行星运动的理论》中。在此书中声称他自1799年以来就使用最小二乘方法,由此爆发了一场与勒让德的优先权之争。 近代学者经过对原始文献的研究,认为两人可能是独立发明了这个方法,但首先见于书面形式的,以勒让德为早。然而,现今教科书和著作中,多把这个发明权归功于高斯。其原因,除了高斯有更大的名气外,主要可能是因为其正态误差理论对这个方法的重要意义。勒让德在其著作中,对最小二乘方法的优点有所阐述。然而,缺少误差分析。我们不知道,使用这个方法引起的误差如何,就需建立一种误差分析理论。高斯于1823年在误差e 1 ,… , e n 独立同分布的假定下,证明了最小二乘方法的一个最优性质: 在所有无偏的线性估计类中,最小二乘方法是其中方差最小的!在德国10马克的钞票上有高斯像,并配了一条正态曲线。在高斯众多伟大的数学成就中挑选了这一条,亦可见这一成就对世界文明的影响。 现行的最小二乘法是勒让德( A. M. Legendre)于1805年在其著作《计算慧星轨道的新方法》中提出的。它的主要思想就是选择未知参数,使得理论值与观测值之差的平方和达到最小: 2 211 ()()m m i i i H y y ===-=-∑∑理论值观测值

地图投影的概念

地图投影的概念 我们可以用一个特定的旋转椭球体面或球面代替地球的自然表面。但是,无论是椭球面或球面均为不可展平的曲面,即不能无裂隙、无重叠地描绘在地图平面上。就像桔皮剥下平铺在平面上,必然产生裂隙一样,如果硬将地球表面展成平面,也不可避免地会产生裂隙或重叠。 人们研究地球及地理环境时往往将其缩小数千万倍制成地球仪,我们研究如何把椭球体表面描写在平面上时,也不妨借助地球仪。假定按相同经差(例如30°)沿经线将地球仪切成若干等分,如图1。我们在一个极点将各等分结合平展在纸面上,则产生了裂隙。这些裂隙随着离开原点距离的增大而增大。假定仍按上述方法切割等分地球仪,如图2,我们在南北纬30°纬线上将各部分结合平展在纸面上,则既产生裂隙又产生重叠。在30°纬线以内,随着离该纬线的距离加大重叠度加大,在30°纬线以外,随着离纬线的距离加大裂隙加大。倘若按相同纬差沿纬线将地球仪切成若干等份,再将各等分沿同一条经线切开,如图3,我们沿某一经线将各部分结合平展在纸面上,同样产生裂隙,图1这些裂隙随着离结合经线距离的增大而增大。 图1 图2 众所周知,地图上一般不允许出现裂隙和重叠。为了消除地图上的裂隙和重叠,实现地球表面在地图上的正确描写,早在公元前600多年,希腊天文学家塞利斯就研制出日晷投影——球心方位投影编制天体图;在公元前200多年亚历山大天文学和地理学家埃拉托色尼研制出正轴等距投影编制世界图。随着社会生产及科学技术的进步,地图学不断发展,科学家们又探求了许多新的投影,以适用于不同内容、不同 用途、不同比例尺地图的需要。 要把它们绘制成地图,首先要将球面上的经纬线 展绘到平面上,然后按地理事物的坐标转绘到相应格 网中而构成地图。由此可见,经纬网在绘制地图的过 程中具有“骨架”作用。地图投影就是研究球面上经 纬网展绘到平面上的数学方法。 地图投影学是地图学的一个分支学科,它研究地 图投影的理论、方法、应用和变换等,也称为数学制 图学。图3 数学上“投影”是不同曲面之间点与点的对应关系。地图投影实质上是在地球面和平面之间建立这种关系。如图4,设球面上点A(、λ)投影后对应于平面上点A'(x、y),则A 与A'的坐标之间存在函数关系:

投影大屏系统混合矩阵说明书

混合矩阵切换器说明书 第一章系统简介 MultiView Matrix 系列混合矩阵切换器,是一款高性能的专业PC信号切换设备,用于多个PC信号输入输出交叉切换,提供四种信号源的输入,信号源分别是是Video,VGA,DVI,YPbPr,每种信号单独传输,单独切换,输出可以是RGB和DVI,使信号传输衰减降至最低,图像信号能高保真输出。广泛应用在大屏幕显示工程、电视教学、指挥控制中心等场合。 Multiview Matrix系列混合矩阵切换器,主板采用自主研发出应于切换系统的巨量数据传输芯片技术,全新推出我公司独创的 180G/s处理高速宽带总线,彻底根除了处理数据总线带宽低下引起的显示速度慢且不稳定的瓶颈。 采用网络控制,可以传输数据量大。 可以支持RGB、DVI、HDTV、S-Video、NTSC/PAL格式信号输入,分辨率从640x480到1920x1200,刷新频率为60Hz;对每路输入信号采样都有特征记忆功能,在前级矩阵中可以任意切换输入信号,只要做过采样调整的信号再此输入,设备会自动配置记忆参数,无需二次采样调整。 可以支持RGB和 DVI信号同时输出,分辨率最高可达到1920x1200,刷新频率为60Hz,方便客户配置显示单元。 第二章技术参数 一计算机输入信号: 数量 4到72路DVI/RGB信号; 类型 DVI(数字)/ RGB(模拟); 分辨率 640x350,640x400,720x400,640x480,848x480,800x600, 848x480,1024x768,1152x864,1280x720,1280X768, 1280X960,1280x1024,1360x768,1400x1050,1440x900, 1600x1200,1680x1050,1792x1344,1856x1392, 1920x1080,1920x1200 像素, 刷新频率为60Hz;

投影法的基本概念

第一节投影法的基本概念 在工程技术中,人们常用到各种图样,如机械图样、建筑图样等。这些图样都是按照不同的投影方法绘制出来的,而机械图样是用正投影法绘制的。 1、投影法的概念 举例:在日常生活中,人们看到太阳光或灯光照射物体时,在地面或墙壁上出现物的 影子,这就是一种投影现象。我们把光线称为投射线(或叫投影线),地面或墙壁称为投影面,影子称为物体在投影面上的投影。 下面进一步从几何观点来分析投影的形成。设空间有一定点S和任一点A,以及不通过点S和点A的平面P,如图所示,从点S经过点A作直线SA,直线SA必然与平面P相交于一点a,则称点a为空间任一点A在平面P上的投影,称定点S为投影中心,称平面P为投影面,称直线SA为投影线。据此,要作出空间物体在投影面上的投影,其实质就是通过物体上的点、线、面作出一系列的投影线与投影面的交点,并根据物体上的线、面关系,对交点进行恰当的连线。 如图所示,作△ABC在投影面P上的投影。先自点S过点A、B、C分别作直线SA、SB、SC与投影面P的交点a、b、c,再过点a、b、c作直线,连成△abc ,△abc即为空间的△ABC在投影面P上的投影。 上述这种用投射线(投影线)通过物体,向选定的面投影,并在该面上得到图形的方法称为投影法。 投影法的概念中心投影法 2、投影法的种类及应用 (1)中心投影法 投影中心距离投影面在有限远的地方,投影时投影线汇交于投影中心的投影法称为中心投影法,如图所示。 缺点:中心投影不能真实地反映物体的形状和大小,不适用于绘制机械图样。 优点:有立体感,工程上常用这种方法绘制建筑物的透视图。 (2)平行投影法 投影中心距离投影面在无限远的地方,投影时投影线都相互平行的投影法称为平行投影法,如图所示。 根据投影线与投影面是否垂直,平行投影法又可以分为两种: 1)斜投影法——投影线与投影面相倾斜的平行投影法,如图所示。 2)正投影法——投影线与投影面相垂直的平行投影法,如图所示。

全息投影定义、原理及分类介绍

全息投影定义、原理及分类介绍 在科技快速发展的今天,人们对视觉要求越来越高,由此能实现裸眼立体3D 显示的全息投影技术的应用也是越来越多,在给人们带来新鲜有趣的视觉体验的同时,也为众多商家提供新的宣传营销方式,打开市场新大门。 全息投影技术在展览展示方式,采用全息投影技术的全息成像柜可以使立体影像不借助任何屏幕或介质而直接悬浮在设备外的自由空间,任意角度看都是三维影像展现。产品种类多样分有全息展示柜、180度全息展示柜、270度全息展示柜、360度全息展示柜、全息金字塔、大中小型全息金字塔定制、全息投影设备、3D投影成像设备、全息玻璃柜等,可根据用户使用需求使用场地进行定制。未来全息投影技术市场发展潜力将是无可估量的。 一、什么是全息投影全息投影技术是近些年来流行的一种高科技技术,它是采用一种国外进口的全息膜配合投影再加以影像内容来展示产品的一种推广手段。它提供了神奇的全息影像,可以在玻璃上或亚克力材料上成像。这种全新的互动展示技术将装饰性和实用性融为一体,在没有图像时完全透明,给使用者以全新的互动感受,成为当今一种最时尚的产品展示和市场推广手段。全息投影设备包括:全息投影仪,全息投影幕,全息投影膜,全息投影内容制作等。航天科工数字展示事业部提供3D全息投影成像系统项目策划、3D全息投影成像展示内容制作、 二、全息技术的原理全息投影技术是利用干涉和衍射原理记录并再现物体真实的三维图像的记录和再现的技术。 其第一步是利用干涉原理记录物体光波信息,此即拍摄过程:被摄物体在激光辐照下形成漫射式的物光束;另一部分激光作为参考光束射到全息底片上,和物光束叠加产生干涉,把物体光波上各点的位相和振幅转换成在空间上变化的强度,从而利用干涉条纹间的反差和间隔将物体光波的全部信息记录下来。记录着干涉条纹的底片经过显影、定影等处理程序后,便成为一张全息图,或称全息照片;其第二步是利用衍射原理再现物体光波信息,这是成象过程:全息图犹如一个复杂的光栅,在相干激光照射下,一张线性记录的正弦型全息图的衍射光波一般可给出两个象,即原始象(又称初始象)和共轭象。再现的图像立

openGL投影矩阵原理及数学推导

openGL投影矩阵 概述 显示器是2d的。3d场景需要转换为2d图像才能显示在屏幕上。投影矩阵(GL_PROJECTION)用于完成这个工作。投影矩阵将观察坐标(eye coordinates)转换成裁剪坐标(clip coordinates)。然后,裁剪坐标被除以w,转换为规范化的设备坐标(NDC)。 需要记住的一点是,裁剪操作和规范化都由投影矩阵(GL_PROJECTION)完成。下面介绍如何用6个参数(left,right,bottom,top,near,far)构建投影矩阵。 裁剪(clipping)操作是在裁剪坐标上进行的,安排在透视除法执行之前。裁剪坐标xc,yc,zc同wc比较,若每个分量都落在(-wc,wc)外,那么此坐标将被裁剪掉。 在透视投影中,3d场景中的点(观察坐标)从平截头体中映射到正方体(NDC)中;x坐标从[l,r]映射到[-1,1],y坐标从[b,t]映射到[-1,1],z坐标从[n,f]映射到[-1,1]。 注意到,观察坐标系是右手系,规范设备坐标系是左手系。这就有,在观察坐标系中,摄像机朝向沿着-z,而在NDC中,方向沿着z。由于glFrustum()只接受正参数,所以构造投影矩阵的时候要变号。 openGL中,3d场景中,观察坐标系下的点被投影到近投影面。下图展示了观察坐标系点(xe,ye,ze)投影到近投影面上的点(xp,yp,zp)。 从Top View of Projection看,xe投影到xp,根据等比性质:

从Side View of Projection看,yp计算类似: 注意到,xp和yp依赖于-ze,这一点要引起重视。在观察坐标被投影矩阵转换为裁剪坐标后,裁剪坐标仍然是同质坐标。在规范化阶段执行透视除法变为规范设备坐标(NDC)。 因此,可以将wc的值定为-ze。投影矩阵最后一行为(0,0,-1,0) 下一步,将xp,yp映射到xn,yn,此为线性映射[l,r]=>[-1,1],[b,t]=>[-1,1]:

投影的基本知识

第2章 投影的基本知识 2.1投影法概述 2.1.1投影的概念 在日常生活中,人们经常可以看到,物体在日光或灯光的照射下,就会在地面或墙面上留下影子,如图2-1a 所示。人们对自然界的这一物理现象经过科学的抽象,逐步归纳概括,就形成了投影方法。在图2-1b 中,把光源抽象为一点,称为投射中心,把光线抽象为投射线,把物体抽象为形体(只研究其形状、大小、位置,而不考虑它的物理性质和化学性质的物体),把地面抽象为投影面,即假设光线能穿透物体,而将物体表面上的各个点和线都在承接影子的平面上落下它们的投影,从而使这些点、线的投影组成能够反映物体形状的投影图。这种把空间形体转化为平面图形的 a)影子 b)投影 a)影子 b)投影 图2-1 影子与投影 要产生投影必须具备:投射线、形体、投影面,这是投影的三要素。 2.1.2投影的分类 根据投射线之间的相互关系,可将投影法分为中心投影法和平行投影法。 1.中心投影法 当投射中心S 在有限的距离内,所有的投射线都汇交于一点,这种方法所得到的投影,称为中心投影,如图2-2所示。在此条件下,物体投影的大小,随物体距离投射中心S 及投影面P 的远近的变化而变化,因此,用中心投影法得到物体的投影不能反映该物体真实形状和大小。 图2-2 中心投影 2.平行投影法

把投射中心S 移到离投影面无限远处,则投射线可看成互相平行,由此产生的投影称为平行投影。因其投射线互相平行,所得投影的大小与物体离投影中心及投影面的远近均无关。 在平行投影中,根据投射线与投影面之间是否垂直,又分为斜投影和正投影两种:投射线与投影面倾斜时称为斜投影,如图2-3a 所示;投射线与投影面垂直时称为正投影,如图2-3b 所示。 a)斜投影法 b)正投影法 a)斜投影法 b)正投影法 图2-3 平行投影 2.1.3平行投影的特性 1.同素性 在通常情况下,直线或平面不平行(垂直)于投影面,因而点的投影仍是点,直线的投影仍是直线。这一性质称为同素性。 2.显实性(真形性) 当直线或平面平行于投影面时,它们的投影反映实长或实形。如图2-4a 所示,直线AB 平行于H 面,其投影ab 反映AB 的真实长度,即ab=AB 。如图2-4b 所示,平面ABCD 平行于H 面,其投影反映实形,即三角形abc ≌三角形ABC 。这一性质称为显实性。 a) b) a) b) 图2-4 平行投影的显实性 3.积聚性 当直线或平面平行于投射线(同时也垂直于投影面)时,其投影积聚为一点或一直线。这样的投影称为积聚投影。如图2-5a 所示,直线AB 平行于投影线,其投影积聚为一点a(b);如图2-5 b 所示;平面三角形ABC 平行于投影线,其投影积聚为一直线ac 。投影的这种性质称为积聚性。

向量的数量积——数量积的投影定义(含数量积综合练习题)

向量的数量积——数量积的投影定义 一、基础知识 1、向量的投影: (1)有向线段的值:设有一轴l ,AB 是轴上的有向线段,如果实数λ满足AB λ=,且当AB 与轴同向时,0λ>,当AB 与轴反向时,0λ<,则称λ为轴l 上有向线段 AB 的值。 (2)点在直线上的投影:若点A 在直线l 外,则过A 作'AA l ⊥于'A ,则称'A 为A 在直线l 上的投影;若点A 在直线l 上,则A 在A 在直线l 上的投影'A 与A 重合。所以说,投影往往伴随着垂直。 (3)向量的投影:已知向量,a b ,若a 的起点,A B 在b 所在轴l (与b 同向)上的投影分别为'',A B ,则向量''A B 在轴l 上的值称为a 在b 上的投影,向量''A B 称为a 在 b 上的投影向量。 2、向量的投影与向量夹角的关系:通过作图可以观察到,向量的夹角将决定投影的符号,记θ为向量,a b 的夹角 (1)θ为锐角:则投影(无论是a 在b 上的投影还是b 在a 上的投影)均为正 (2)θ为直角:则投影为零 (3)θ为钝角:则投影为负 3、投影的计算公式:以a 在b 上的投影λ为例,通过构造直角三角形可以发现 (1)当θ为锐角时,cos b λθ=,因为0λ>,所以cos b λθ=

(2)当θ为锐角时,()cos cos b b λπθθ=-=-,因为0λ<,所以cos b λθ-=-即cos b λθ= (3)当θ为直角时,0λ=,而cos 0θ=,所以也符合cos b λθ= 综上可得:a 在b 上的投影cos b λθ=,即被投影向量的模乘以两向量的夹角 4、数量积与投影的关系(数量积的几何定义): 向量,a b 数量积公式为cos a b a b θ?=,可变形为() cos a b a b θ?=?或 () cos a b b a θ?=?,进而与向量投影找到联系 (1)数量积的投影定义:向量,a b 的数量积等于其中一个向量的模长乘以另一个向量在该向量上的投影,即a b a b b λ→?=?(记a b λ→为a 在b 上的投影) (2)投影的计算公式:由数量积的投影定义出发可知投影也可利用数量积和模长进行求解: a b a b b λ→?= 即数量积除以被投影向量的模长 5、数量积投影定义的适用范围:作为数量积的几何定义,通常适用于处理几何图形中的向量问题 (1)图形中出现与所求数量积相关的垂直条件,尤其是垂足确定的情况下(此时便于确定投影),例如:直角三角形,菱形对角线,三角形的外心(外心到三边投影为三边中点) (2)从模长角度出发,在求数量积的范围中,如果所求数量积中的向量中有一个模长是定值,则可以考虑利用投影,从而将问题转化为寻找投影最大最小的问题 二、典型例题:

投影矩阵的定义

视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。对于透视投影,视锥可以被初始化成金字塔形,将摄像机放在顶端。这个金字塔再经过前、后两个剪切面的分割,位于这两个面之间的部分就是视锥。只有位于视锥内的对象才可见。 视锥由凹视野( 在上图中,变量 投影矩阵是一个典型的缩放和透视矩阵。投影变换将视锥变换成一个直平行六面体的形状。因为视锥的近处比远处小,这样就会对靠近摄像机的对象起到放大的作用,也就将透视应用到了场景当中。 在视锥中,摄像机与空间原点间的距离被定义为变量 视矩阵将摄像机放置在场景的原点。又因为投影矩阵需要将摄像机放在 将两个矩阵相乘,得到下面的矩阵: 下图显示了透视变换如何将一个视锥变换成一个新的坐标空间。注意:锥形体变成了直平行六面体,原点从场景的右上角移到了中心。 在透视变换中,

这个矩阵基于一定的距离(这个距离是从摄像机到邻近的剪切面)对对象进行平移和旋转,但是它没有考虑到视野( 在这个矩阵中, 在程序中,使用视野角度来定义x和y缩放系数比使用视口的水平和垂直尺寸(在摄像机空间中)并不方便多少。下面两式使用了视口的尺寸,并且与上面的公式相等: 在这些公式中,Zn表示邻近的剪切面的位置,变量Vw和Vh表示视口的高和宽。这两个参数与 D3DVIEWPORT2结构中的dwWidth和dwHeight成员相关。 不管你使用那个公式,将同世界和视变换一样,可以调用下面的 D3DMATRIX ProjectionMatrix(const float near_plane,// distance to near clipping plane const float far_plane,// distance to far clipping plane const float fov_horiz,// horizontal field of view angle, in radians const float fov_vert)// vertical field of view angle, in radians { float h, w, Q; w = (float)cot(fov_horiz*0.5); h = (float)cot(fov_vert*0.5); Q = far_plane/(far_plane - near_plane); D3DMATRIX ret = ZeroMatrix(); ret(0, 0) = w; ret(1, 1) = h; ret(2, 2) = Q; ret(3, 2) = -Q*near_plane; ret(2, 3) = 1; return ret; } // end of ProjectionMatrix()

投影矩阵的计算过程

投影矩阵的计算过程3d模型经过世界坐标变换、相机坐标变换后,下一步需要投影变换。投影变换的目的就是要把相机空间转换到标准视图空间,在这个空间的坐标都是正规化的,也就是坐标范围都在[-1,1]之间,之所以转换到这个空间是为了后续操作更方便。下面的讨论都是以列向量来表示,这样在变换操作时,采用的是矩阵左乘法,如果采用的是行向量的话,那就相反,矩阵右乘法即是向量在左边乘以变换矩阵。采用哪种表示并不影响结果,只需要把该种表示下得出的变换矩阵转置一下,就是采用另外一种表示模式需要的结果。常见的投影有两种,正交投影和透视投影,正交投影相对来说更简单,所以先来看看正交投影。最简单的正交变换矩阵 1 0 0 0 0 1 0 0 0 0 0 1 这个正交变换是不可逆变换,变换后x和y保留,z变成了0,在实际应用中,更常见的情况是限定x、y、z在一定的范围内的进行投影变换,比如x[l,r],y[b,t],z[n,f]。那么要把这段空间中的点变换到-1和1之间,只要完成两个变换,首先把坐标轴移到中心,然后进行缩放就可以了。采用列向量的话,那就是缩放矩阵乘以平移矩阵。2/(r-l) 0 0 0 1 0 0 -(r+l)/2 2/(r-l) 0 0 -(r+l)/(r-l) 0 2/(t-b) 0 0 x 0 1 0 -(b+t)/2 = 0 2/(t-b) 0 -(t+b)/(t-b) 0 0 2/(f-n) 0 0 0 1 -(n+f)/2 0 0 2/(f-n) -(f+n)/(f-n) 0 0 0 1 0 0 0 1 0 0 0 1 透视投影类比于我们人眼系统,看一个物体,会有远小近大的效果。在转换到相机空间后,相机是这个空间的原点,和正交投影体是一个长方体或者立方体不同,透视投影体是一个锥体被近平面截取掉头部剩下的空间。假定仍然采用上面的坐标表示。在透视投影下,空间上面的任何一点P投影到近平面上某点q,通过三角几何学我们可以得到qx=px*n/pz ,y点同理。假定直接投影到近平面,则该矩阵很简单,用Ma表示下面的矩阵1 0 0 0 0 1 0 0 0 0 1 0 0 0 1/n 0 则齐次空间某点(x,y,z ,1)被该矩阵转换后变成了(x ,y z, z/n) ,除以z/n,则变成了(nx/z,ny/z,n ,1) 正好吻合上面的公式。 undefined 但是我们知道投影变换需要把坐标变换到-1和1之间,假定先不考虑z轴的变换,在x轴和y轴上面经过上述变换后,已经投影在近平面了,假设近平面xy在[l,r] 和[b,t]之间了,因此只需要和上面的正交投影一样,进行平移和缩放操作就可以了,平移矩阵Mb为 1 0 0 -(l+r)/2 0 1 0 -(t+p)/2 0 0 1 -(f+n)/2 0 0 0 1 以及缩放矩阵Mc 2/(r-l) 0 0 0 0 2/(t-b) 0 0 0 0 2/(f-n) 0 0 0 0 1 McXMbXMa 得到的矩阵为2/(r-l) 0 -(r+l)/(n*(r-l))0 0 2/(t-b) -(t+b)/(n*(t-b)) 0 0 0 j k 0 0 1/n 0 j k 为未知数,这个矩阵也可以同时乘以n,则变为2n/(r-l) 0 -(r+l)/(r-l) 0 0 2n/(t-b) -(t+b)/(t-b) 0 0 0 j k 0 0 1 0 为了求解J k,我们需要把z变换到-1 和1 因此当z=n时为-1,z=f时为1 (j*n+k)/n= j+k/n=-1; 同理j+k/f=1; 得到k=2f*n/(n-f) j=-(n+f)/(n-f) 代入上面的矩阵,就得出通用的正交变换矩阵。而且在一般情况下r=-l ,b=-t 因此上述矩阵可以简化为n/r 0 0 0 0 n/t 0 0 0 0 -(n+f)/(n-f) 2f*n/(n-f) 0 0 1 0 n/r 和n/t可以进一步简化成水平半视角和垂直半视角的三角函数来表示,而水平视角和垂直视角和透视窗口的宽高比有是成正比的,最终上面两行可以用宽高

快速投影Hessian矩阵算法

文章编号:1671 1114(2009)03 0018 04 快速投影Hessian 矩阵算法 收稿日期:2008 03 10 基金项目:天津市高校发展基金项目(20060402) 作 者:汤大林(1965 ),男,高级工程师,主要从事数学建模及应用方面的研究. 汤大林 (天津理工大学理学院,天津300191) 摘 要:分析了求解等式约束非线性规划问题的投影H essian 矩阵算法,找出了算法两步Q 超线性收敛的原因,并用BY RD 的例子说明此算法的收敛效果较差,即甚至不是线性收敛;对算法进行了合理的改进,并用改进后的算法求解BY RD 问题,得到了满意的收敛效果,即Q 超线性收敛.借助数值试验验证了改进算法的快速收敛性.关键词:等式约束非线性规划;投影H essian 矩阵算法;超线性收敛中图分类号:O 221.2 文献标识码:A Q uick projection method with H essian matrix T AN G Dalin (School of Science,T ianjin University of Techn ology,T ian jin 300191,China) Abstract:T he project ion method wit h H essian mat rix used to so lve nonlinear prog ramming w ith equality co nstr aint is analyzed and the r easo n w hy the method is superlinear conver gent by two steps is found o ut.Its bad converg ent effect at linear ity is illuminated by BYRD's example.T he method is impr ov ed and quickly super linear conver gence o f the impr ov ed metho d is illuminated using BY RD's ex ample.T he quickly co nv erg ent effect o f t he impro ved method is verified by a numerical experiment. Key words:nonlinear pr og ramming w ith equality constra int ;project ion method wit h H essian mat rix ;super linear conver gence 1 投影Hessian 矩阵算法的缺点 考察等式约束非线性规划问题: m in x R n f (x ),约束c(x)=0,(1) 其中,目标函数f (x ):R n !R,约束c(x):R n !R m 是二次可微函数,且m ?n,即m 个等式约束.为叙述方便,引入如下记号: x =(x (1),x (2),#,x (n)), c(x)=(c (1)(x ),c (2)(x ),#,c (m)(x ))T , g(x)= f (x )= ( f x (1), f x (2) ,#, f x (n))T , A(x)= c(x)= c (1) x (1) c (2) x (1)# c (m) x (1) c (1) x (2) c (2) x (2)# c (m) x (2) ! c (1) x (n) c (2) x (n)# c (m) x (n ) ,L (x, )=f (x )-?m i=1 (i) c (i)(x ), 其中, (i)为拉格朗日乘子,i =1,2,#,m. 将A(x)QR 分解为A(x)=(y(x),z(x)) (R(x)O ) , 其中y (x),z(x)均为n 阶正交矩阵,R(x)为m 阶上三角矩阵. V ol.29N o.3 Jul.2009 第29卷 第3期2009年7月 天津师范大学学报(自然科学版) Jour nal of T ianjin N orma l U niver sity (N atural Science Edit ion)

投影法概念.点的投影

点、直线和平面>> 点>> 点在两投影面体系中的投影 1 点 1.1 点在两投影面体系中的投影 1.1.1 两投影面体系的建立 两投影面体系由互相垂直相交的两个投影面组成,如图1所示,其中一个为水平投影面(简称水平面),以H表示,另一个为正立投影面(简称正面),以V表示。两投影面的交线称为投影轴,以OX表示。 水平投影面H与正立投影面V将空间分为四个部分,称为四个分角,即第一分角、第二分角、第三分角、第四分角。 (1) 投影如图2所示,空间点A处于第一分角,按正投影法将点A向正面和水平面投射,即由点A向正面作垂线,得垂足a′,则a′称为空间点A的正面投影;由点A向水平面作垂线,得垂足a ,则a称为空间点A的水平投影。画出点A的正面投射线Aa′和水平投射线Aa所确定的平面Aaa′与V、H面的交线a′a x和aa x 。 图2 点在两投影面体系中的投影 (2) 注写规定空间点用大写字母表示,如A、B、C…;点的水平投影用相应的小写字母表示,如a、b、c…;点的正面投影用相应的小写字母加一撇表示,如a′、b′、c′…。 (3) 投影面展开为了把空间点A的两个投影表示在一个平面上,保持V面不动,将H 面的前半部分绕OX轴向下旋转90°、后半部分绕OX轴向上旋转90°与V面重合。则得到点A的两面投影图。 (4) 擦去边界,得到点的两面投影图投影面可以看作是没有边界的平面,故符号V、H及投影面的边界线都不需画出。 1.1.3 点在两投影面体系中的投影规律

(a) (b) 图3 点在两投影面体系中的投影规律 (1) 一点的水平投影和正面投影的连线垂直于OX轴。 在图3(a)中,点A的正面投射线Aa′和水平投射线Aa所确定的平面Aaa′垂直于V 和H平面。根据初等几何知识,若三个平面互相垂直,其交线必互相垂直,所以有aa x⊥a′a x、aa x⊥OX和a′a x⊥OX。当a随H面旋转重合于V面时,aa x⊥OX的关系不变。因此,在投影图上,aa′⊥OX。 (2) 一点的水平投影到OX轴的距离等于该点到V面的距离;其正面投影到OX轴的距离等于该点到H面的距离,即aa x=Aa′;a′a x=Aa。 在图3(a)中,因为Aaa x a′是矩形,所以aa x=Aa′; a′a x=Aa。 图4 分角内点的投影

模型视图矩阵和投影矩阵:webgl笔记

最近在学习WebGL技术的过程中,我补充了一些原本了解甚少的计算机图形学知识。如果有同学和我一样,没有系统学过计算机图形学就接触了3D图形编程,而对不少略为艰深的概念有困惑,希望这些笔记能够帮助你。 模型矩阵 我们必须考虑,当空间中点的位置会发生变化的时候,其坐标如何变化。考虑三种基本的变换:平移、旋转和缩放。 “变换”的含义就是,将点的初始位置的坐标P映射到平移、旋转、缩放后的位置坐标P’,即: 平移变换是最简单的变换: 旋转变换有一些复杂,先看在二维平面上的旋转变换: 很容易得到:

矩阵形式的表达更加简洁,后面大多使用这种形式: 推广到三维空间中: 点绕z轴旋转: 点绕x轴旋转: 点绕y轴旋转: 绕指定的任意轴旋转变换是由几个绕坐标轴旋转变换和平移变换效果叠加而成的,后文会有详细叙述。 缩放变换也比较简单: 总结一下:平移变换,变换后点坐标等于初始位置点坐标加上一个平移向量;而旋转变换和缩放变换,http://fei https://www.360docs.net/doc/4e5407314.html,变换后点坐标等于初始位置点坐标乘以一个变换矩阵。

齐次坐标这天才的发明,允许平移变换也表示成初始位置点坐标左乘一个变换矩阵的形式。齐次坐标使用4个分量来表示三维空间中的点,前三个分量和普通坐标一样,第四个分量为1。 平移变换巧妙地表示为: 旋转变换(以绕z轴旋转为例)和缩放变换相应为: 综上,在齐次坐标下三种基本变换实现了形式上的统一,这种形式的统一意义重大。 矩阵有一个性质: 考虑一个点,https://www.360docs.net/doc/4e5407314.html,先进行了一次平移变换,又进行了一次旋转变换,结合上面矩阵的性质,可知变换后的点P’为:

ARCGIS中坐标系的定义及投影转换方法

ArcGIS中坐标系的定义及投影转换方法 张卫东 (安徽省环境信息中心 合肥 230001 ) 摘 要:本文就我省GIS项目中地理数据所涉及的多种坐标系及地图投影转换等问题作了详细分析,并在ESRI公司的ArcGIS软件平台上介绍了不同坐标系的定义及投影转换方法。 关键词:坐标系; 地图投影 一、问题的提出 GIS技术在我省环保工作中已应用多年,现有多套基于不同坐标系的地理数据,如全省1:5万的北京54坐标系数据,主要城市1:1万的西安80坐标系数据,GPS采集的WGS84坐标系数据以及同是北京54坐标系但不同投影的遥感解译数据等,这些不同坐标系的数据给我们的使用带来了困难:如何将遥感解译数据和不同的地理数据转换到一起,GPS采集的经纬度数据如何正确加载到地图上,以前在北京54坐标系上使用的数据又如何转换到新的西安80坐标系上来?通过摸索,本人找到了解决问题的一些方法,现介绍如下,首先介绍一下相关的几个概念。 二、相关概念 由于GIS所描述是位于地球表面的空间信息,所以在表示时必须嵌入到一个空间参照系中,这个参照系统就是坐标系,它是根据椭球体等参数建立的。另外,为了能够将地图从球面转换到平面,还要进行投影。 1. 椭球体(Spheroid)、基准面(Datum)、坐标系(Coordinate System)及投影(Projection) 尽管地球是一个不规则的椭球,但为了将数据信息以科学的方法存放到椭球上,我们需要用一个可以量化计算的椭球体作为地球的模型。这样的椭球体用长半轴a(semimajor axis),短半轴b(semiminor axis),偏心率倒数1/f(Inverse flattening)来描述,这三个参数数学关系为:1/f=a/(a-b),实际中我们一般用长、短半轴二个参数来表示就可以了,根据需要人们定义了多种参考椭球体模型。然而有了这个椭球体还不够,还需要一个大地基准面将这个椭球定位,它的作用是来确定地球与椭球体之间的位置关系,由于每个国家或地区需要最大限度的贴合自己的那一部分不同,基准面也不同。 有了基于椭球体参数的基准面,再加上角度单位(Angular Unit)和本初子午线(Prime Meridian),就定义了地理坐标系(Geographic Coordinate System),图2清楚地表明了这一点。 但地理坐标系是用经纬度表示球面的位置,很多时候我们精确分析需要在平面上来进行,这就要将地图从三维地理坐标通过投影转换成二维平面坐标,这样的坐标系叫投影坐标系(Projection Coordinate System),它是在地理坐标系上加上投影转换参数(参见图4)。 由于从球面到平面的转换会引起距离、面积、形状、方向一个或多个空间属性的变形失真,没有一种投影转换能保持所有的空间属性不变。所以一些地图投影通过损失其它空间属性来使某一属性失真最小,而另一些地图投影则努力平衡全部空间属性的失真,现有数百种地图投影,它们各自适合于表示整个地球表面或某些区域的不同需求,如我国1:50万和更大比例尺地形图使用的是高斯-克吕格 (Gauss-Kruger) 投影,它没有角度变形,在长度和面积上变形也很小,通过分带投影后能保证很高的精度(参见图4),而遥感解译数据常采用阿尔勃斯(Albers Equal-Area Conic)投影,它是等面积割圆锥投影,可以保持面积不变(参见图5)。

相关文档
最新文档