投影坐标系

图形学的矩阵变换

喜夏-厌秋 提交于 2019-12-27 17:52:32
确定一个四棱锥的一块空间,两个断面之间的空间就是需要投影的空间 gluLookAt的函数的作用,它封装了世界坐标系到观察坐标系的转换,从“从一个点去看另一个点的方法(ps:包括方向)” 世界坐标系是最大的坐标系,最小的是模型坐标系;最后显示的结果是观察坐标系; 可以建立一个巨大的虚拟世界,这个世界里面包含了很多的对象; 但是这个世界是没有“观察”的;等有了“观察”之后,就需要观察的位置和产生的结果的地方(gluLookAt);并且需要哪些东西可以在观察的位置出现,这个就是gluPerspective 模型矩阵描述了一系列变换的信息。我们首先计算物体的模型矩阵,然后将物体每个顶点的坐标(在局部的物体坐标系下)都左乘该模型矩阵,得到这一帧该物体每个顶点的坐标。 三大变换: 模型视图变换 (自身) 投影变换  (观察) 视口变换(显示) 在模型矩阵中,我们关心物体在变换后处在世界坐标系下的位置。事实上,我们更加关心物体相对于观察者的位置。最简单的方案是将观察者置于原点处,面向z轴正半轴,那么空间中的点在世界坐标系下的位置就是其相对于观察者的位置。观察者的位置和方向变化时(用一个变换来描述),就好像整个世界的位置和方向进行了相反的变换。所以,在所有物体的模型矩阵的左侧再乘以一个表示整个世界变换的模型矩阵,就可以了。这个表示整个世界变换的矩阵又称为“视图矩阵”,因为他们经常一起工作

Direct3D基础(顶点坐标变换)

我的梦境 提交于 2019-12-26 20:07:06
开始的话:顶点坐标变换时Direct3D学习中的入门基础,在这里将详述其原理: Direct3D中渲染三维对象的过程分为两个阶段:《1》T&L(Transforming and Lighting),即坐标变换和光照; 《2》光栅化处理阶段。 一,T&L流水线: 如下图: 1,世界变换和世界坐标系( 局部坐标变为世界坐标 ): 物体在三维空间中的变形和运动的过程称为世界变换(平移,旋转,缩放),这个三维空间就是世界空间,其坐标系就是三维坐标系 世界变换 事实上就是将物体顶点从模型空间转换到世界空间中,模型空间其实就是在三维设计软件(如3DSMAX)中为物体设定的坐标系,也称局部坐标系。而世界坐标则是所有物体都是用同一个世界坐标原点的坐标系,变换就是指对模型进行平移,旋转,缩放及它们的任意组合变换。 使用以下公式对点P1进行世界变换。 P2(X,Y,Z,1)= dot( P1(X,Y,Z,1), M ) M 为世界变幻矩阵,它实现物体的平移,旋转,缩放,dot为点乘,P2为变换后的坐标,p1为变换前的坐标。 以下为实现世界坐标矩阵变换的DirectX代码(C++): D3DXMATRIX matWorld; // 世界变换矩阵 D3DXMATRIX matTranlate,matRotation,matScale; // 变换矩阵,旋转矩阵,缩放矩阵 D3DX

聊聊GIS中的坐标系|再版

我们两清 提交于 2019-12-23 06:03:14
本文约6500字,建议阅读时间15分钟。 作者:博客园/B站/知乎/csdn/小专栏 @秋意正寒 版权:转载请告知,并在转载文上附上转载声明与原文链接( https://www.cnblogs.com/onsummer/p/12081889.html )。 【目录】 1. 经纬度与米【告诉大家GIS中的坐标系核心的两种坐标系定义,地理坐标系统vs投影坐标系统】 2. 为什么有两种表达(不同点) 3. 内在联系(相同点)【指出投影坐标系统的广义定义,即PCS=f(GCS)】 4. 常用坐标系统(4.1 WKID;4.2 地理坐标系统;4.3 投影方法;4.4 投影坐标系统;4.5 GCJ02与BD09;4.6 经纬度直投) 5. 常用坐标系统的判别与常用软件中的操作(待补充) 我的牢骚与参考文档 1. 经纬度 (例: 119.32°E, 32.48°N)与 米 (∟, 直角坐标) 让基础浅薄的同学、GIS外行疑惑的,可能就是这两种“单位”的坐标值,以及他们的转换了吧。 2019年是一个不同寻常的年份,大大小小的地震总能被人民日报大V转发。 地震信息一般会带什么呢? 这是一条地震消息,它除了时间、地震等级等消息外,有一个很重要的消息:北纬36.16度,东经98.93度,为了方便,我们用数学的坐标表示法: 点P,P(98.93°E, 36.16°N) 其中,E就是单词East(东)

百度地图API详解之地图坐标系统

痞子三分冷 提交于 2019-12-21 04:38:48
  我们都知道地球是圆的,电脑显示器是平的,要想让位于球面的形状显示在平面的显示器上就必然需要一个转换过程,这个过程就叫做 投影 (Projection)。在地球上我们通过经纬度来描述某个位置,而经过投影之后的地图也有自己的坐标系统,这篇文章就来详细介绍在百度地图API中涉及的各种坐标体系。 在百度地图API中,你需要了解如下坐标系: 经纬度:通过经度(longitude)和纬度(latitude)描述的地球上的某个位置。 平面坐标:投影之后的坐标(用x和y描述),用于在平面上标识某个位置。 像素坐标:描述不同级别下地图上某点的位置。 图块坐标:地图图块编号(用x和y描述)。 可视区域坐标:地图可视区域的坐标系(用x和y描述)。 覆盖物坐标:覆盖物相对于容器的坐标(用x和y描述)。 别被这么多的坐标系吓着,看完了后面的讲解相信你会逐渐理解它们。 经纬度 这个就不多说了,不熟悉的可以翻翻地理书。但需要注意的是即便同是经纬度坐标也可能属于不同的坐标体系。一般GPS设备获取的经纬度属于WGS84坐标系,这是一个比较通用的坐标体系。由于某些原因国内不能直接使用WGS84坐标,因此百度地图API的经纬度是经过加密偏移的。 平面坐标 前面说过,球面上的形状需要经过投影才能变换为平面上的形状,变换后就需要有一个平面坐标系统来描述地图上某个位置。百度地图API默认使用墨卡托投影(Mercator

OSG 两个相机

独自空忆成欢 提交于 2019-12-20 21:09:58
在场景中创建两个视口。其中一个用于从坦克驾驶员的视角观察场景。该视口将被渲染于屏幕的上半部分。第二个视口由缺省的osgViewer::Viewer类接口(轨迹球,飞行等控制器)控制。它将被渲染于屏幕的中下部分。 概述: OSG向开发人员提供了各种的抽象层次接口。前面的教程讨论的主要是一些较高层级的接口应用:例如使用Viewer类来控制视点,场景,交互设备和 窗口系统。OSG的优势之一,就是可以允许开发者在使用高层次的接口的同时,访问较低层次的抽象接口。本章将使用一些低抽象层级的功能,对视点进行控制, 并使用相应的类渲染场景。 代码: 为了创建两个视口,我们需要提供两个独立可控的摄像机。与OSG 1.2版本中所述不同的是,本例中将不再使用Prodecer::CameraConfig类,而是将多个不同的视口添加到组合视口 CompositeViewer类当中。下面的函数即用于实现添加视口并设置其中的摄像机位置。 void createView (osgViewer::CompositeViewer *viewer,//查看器,一个相框 osg::ref_ptr<osg::Group> scene,//场景 osg::ref_ptr<osg::GraphicsContext> gc,//显示设置定义相框的大小,View和Viewr在屏幕上的大小,位置 osgGA:

地球坐标系与投影方式的理解(关于北京54,西安80,WGS84;高斯,兰勃特,墨卡托投影)

≡放荡痞女 提交于 2019-12-18 14:58:17
一、地球模型 地球是一个近似椭球体,测绘时用椭球模型逼近,这个模型叫做 参考椭球 ,如下图: 赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆。a称为椭球的长轴半径,b称为椭球的短轴半径。 a ≈ 6378.137千米,b≈6356.752千米。(实际上,a也不是恒定的,最长处和最短处相差72米,b的最长处和最短处相差42米,算很小了) 地球参考椭球基本参数: 长轴:a 短轴:b 扁率:α=(a-b) / a 第一偏心率:e=√(a 2 -b 2 ) / a 第二偏心率:e ' =√(a 2 -b 2 ) / b 这几个参数定了,参考椭球的数学模型就定了。 什么是大地坐标系? 大地坐标系 是大地测量中以 参考椭球 面 为基准面建立起来的坐标系。地面点的位置用大地经度、大地纬度和大地高度表示:(L, B, H)。 空间直角坐标系 是以 参考椭球 中心 为原点,以原点到0度经线与赤道交点的射线为x轴,原点到90度经线与赤道交点的射线为y轴,以地球旋转轴向北为z轴:(x, y, z) 共同点:显然,这两种坐标系都必须基于一个参考椭球。 不同点:大地坐标系以面为基准,所以还需要确定一个标准海平面。而空间直角坐标系则以一个点为基准,所以还需要确定一个中心点。 只要确定了椭球基本参数,则大地坐标系和空间直角坐标系就相对确定了,只是两种不同的表达而矣,这两个坐标系的点是一一对应的。

Cesium 坐标系转换

做~自己de王妃 提交于 2019-12-18 13:10:03
1 Cesium中的地形 Cesium中的地形系统是一种由流式瓦片数据生成地形mesh的技术,厉害指出在于其可以自动模拟出地面、海洋的三维效果。创建地形图层的方式如下: var terrainProvider = new Cesium.CesiumTerrainProvider({ url : 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles', // 默认立体地表 // 请求照明 requestVertexNormals: true, // 请求水波纹效果 requestWaterMask: true }); viewer.terrainProvider = terrainProvider; Cesium支持两种类型的地形,STK World Terrain和Small Terrain。 1.1 STK世界地形 STK世界地形(STK World Terrain),其是高分辨率, 基于quantized mesh的地形。这是一种基于网格的地形,可充分利用GL中的Shader来渲染,效果相当逼真。该地形使用了多种数据源,分别适应不同地区和不同精度时的情形,如,美国本土使用美国国家高程数据集(National Elevation Dataset,NED)的高程,精度3-30米;对于欧洲使用EU-DEM高程

ArcGIS——GIS中的坐标系

你离开我真会死。 提交于 2019-12-13 00:17:07
1. 经纬度与GCS(Geographic Coordinate System, 地理坐标系统) 2. 方里网与PCS(Projection Coordinate System, 投影坐标系统) 3. GCS和PCS的转化问题(三参数与七参数问题) 4. 火星坐标问题 在第一部分,我介绍一下以经纬度为准的地理坐标系统,也顺带提及一下我国的高程坐标系。主要涉及的内容有:大地水准面问题,椭球问题,常见的GCS(如北京54,西安80,CGCS2000,WGS84等),让大家看到GIS数据中的GCS马上就能知道这是什么东西。 在第二部分,我介绍一下以平面直角坐标系为量度的投影坐标系统。主要涉及的内容有:PCS与GCS的关系,我国常见的PCS(高斯克吕格、兰伯特/Lambert、阿尔伯斯Albers、墨卡托Mercator、通用横轴墨卡托UTM、网络墨卡托Web Mercator)。 在第三部分,是实际操作过程中遇到的种种问题,如投影不对会出现什么情况、如何转换GCS、如何切换PCS(重投影问题)等问题,涉及一些数学转换的思维,需要有一定的空间想象能力。 在第四部分,我简单介绍一下所谓的火星坐标。 那么我们开始吧! 1. 经纬度与GCS 天气预报也好,火箭发射也罢,地震、火山等事故发生时,电视台总会说东经XX度,北纬YY度。这个经纬度中学地理就学过了,我就不细说了。 我从如何描述地球说起。

聊聊GIS中那些坐标系

与世无争的帅哥 提交于 2019-12-11 07:10:31
聊聊GIS中那些坐标系 </h1> <div class="clear"></div> <div class="postBody"> 转载请声明到标题。 B站/博客园/CSDN/知乎:@秋意正寒 很开心能跃居百度关键词第一位,近期打算重写一下这篇博客,以更系统、更齐全的角度,更通俗易懂的语言讲授坐标系的初步认知。 从第一次上地图学的课开始,对GIS最基本的地图坐标系统就很迷。也难怪,我那时候并不是GIS专业的学生,仅仅是一门开卷考试的专业选修课,就没怎么在意。 等我真正接触到了各种空间数据产品,我才知道万里长征第一步就是:处理坐标系统。 想必各位从业人员多多少少都会听说过几个名词,可能有那么点印象吧。比如,高斯克吕格,北京54,西安80,WGS84,投影坐标系统等等。 今天就从头说起,讲讲那些坐标系统的事情。 惯例,给个目录: 经纬度与GCS(Geographic Coordinate System, 地理坐标系统) 平面坐标与PCS(Projection Coordinate System, 投影坐标系统) GCS和PCS的转化问题(三参数与七参数问题) 火星坐标问题 在第一部分,我介绍一下以经纬度为准的地理坐标系统,也顺带提及一下我国的高程坐标系。主要涉及的内容有:大地水准面问题,椭球问题,常见的GCS(如北京54,西安80,CGCS2000,WGS84等)

6-DoF相关基础知识整理

岁酱吖の 提交于 2019-12-09 22:24:28
刚刚接触这个领域,因此打算花点时间先整理一下相关的一些基础的知识。 首先是第一个概念 一、什么是6-DoF,即6个自由度是什么? 首先,先解释一下自由度,自由度与刚体在空间中的运动相关。可以理解为物体移动的不同基本方式。 自由度一共有6个,可以分为两种类型:平移和旋转。 1. 平移运动   刚体可以在3个自由度中平移:向前/后,向上/下,向左/右 2. 旋转运动   刚体在3个自由度中旋转:纵摇(Pitch)、横摇(Roll)、垂摇(Yaw) 因此,3种类型的平移自由度+3种类型的旋转自由度 = 6自由度 在任意一个自由度中,物体可以沿两个“方向”自由运动。例如,电梯限制在1个自由度中(垂直平移),但电梯能够在这个自由度中上下运动。同样,摩天轮限制在1个自由度中,但这是旋转自由度,所以摩天轮能够朝相反的方向旋转。 我们可以继续举例子,比如说主题公园。碰碰车总共有3个自由度:它只能在3轴中的2条里平移(无法像电梯那样上下移动);然后它只能以一种方式旋转(无法像飞机那样纵摇和垂摇)。 所以2个平移+1个旋转=3自由度。 无论有多复杂,刚体的任何可能性运动都可以通过6自由度的组合进行表达。 例如在你用球拍击打网球的时候,球拍的复杂运动可以表示为平移和旋转的组合。 二、PnP算法 1. PnP算法是什么? PnP(Perspective-n-Point)是求解 3D 到 2D