漫游器在椭球上的定位和变换

OSG 多视图 实现导航拖拽器 OSG基于多视图实现的导航器。 阅读详情

漫游器的使用场景非常丰富,osg的osgGA库中包含了许多常用的漫游器类型,如:最常见的TrackballManipulator(轨迹球漫游器)、DriveManipulator(驾驶漫游器)、FirstPersonManipulator(类似于第一人称射击游戏漫游器)等,根据不同的应用领域可以定制各种实用的漫游器。本文主要对常用的GIS类软件中使用的地形漫游器(如Google Earth)中的一些数学变换做一些学习记录。

  • 地理坐标系统
(1)ECEF坐标系统

在常用的漫游器软件开发中,一般使用一种以地心为坐标原点的坐标系统,一般称之为ECEF坐标( Earth- Centered Earth- Fixed),这个坐标系是一个三维的直角坐标系统。这与我们常常使用的经纬坐标不同,使用经纬坐标对于计算来说并不方便。下面我们对这个坐标系统做一些描述,这个ECEF在不同基准面坐标下并不是等价的(比如WGS84坐标基准和我国西安80的坐标基准,也就是说对每一个基准面都可以建立它们各自的ECEF坐标系统,ECEF的约定如下:

(a)坐标原点是地球的质心
(b)Z轴是过原点并指向北极的轴
(c)X和Y轴都是在赤道平面,X轴是过英国格林尼治天文台(0度经线处),Y轴与X和Z构成右手系)


(2)NEU坐标系统(North-East-Up)

在围绕地球运动的航天器中使用的最广泛的是一个称之为 Local Tangent Plane(LTP)的局部切平面坐标系统,这个坐标系统的定义如下:

(a)N和E方向组成的坐标轴是在椭球表面某一点的切平面上

(b)E方向(局部坐标的x轴)指向椭球局部向东的方向

(c)N方向(局部坐标的y轴)指向局部经线的向北方向

(d)U方向(局部坐标的z轴)沿着椭球表面的法线方向


  • 坐标系统之间的转换
从ECEF到NEU(有的地方也成NED,与NEU仅仅局部z轴方向相反)坐标之间需要经过旋转和平移操作,我们首先计算旋转,可以先计算NEU坐标轴的方向向量。在计算之前有些概念需要先了解一下,地球上某一点的纬度值可以有以下两种:Geocentric Latitude和Geodetic Latitude,前者是地球上的点到椭球中心的连线与赤道平面的夹角,后者是地球上点法线方向与赤道平面的夹角,如下图所示:

如果我们使用Geocentric latitude的方式进行计算,那么计算NEU坐标三个轴的方向比较简单,如下图所示:

假设局部坐标原点是P(在椭球表面)的坐标是(x,y,z),椭球的中心是O,那么NEU局部坐标的z轴方向就是向量 OP(,假设OP的长度是R,那么可以得到:P点的坐标是:

O点的坐标是(0,0,0),因此OP方向向量是

局部坐标的向东的方向(局部坐标y轴方向)PE垂直于PN和PO组成的平面(经线平面),因此它与ECEF坐标x轴的夹角是:

因此PE方向向量是

PN的方向向量(up叉乘east得到)是:


另外平移的距离是P点在ECEF世界坐标中的位置,一般通过P点的经纬度通过计算得到,于是ECEF世界坐标转到NEU的转换矩阵是:


其中最后一行的X Y Z是局部坐标原点在ECEF世界坐标中的值(备注:以上转换都是使用 行向量的方式进行的)


上面的方式看着十分自然,但是其实是有问题的,因为PO连线并不垂直与椭球表面,不是椭球的法线方向,我们真正需要使用的应该是Geodetic的纬度值进行计算,这个计算相对复杂一下,如下图所示:


首先我们计算Up的方向(在图中是AOn这个向量),通过计算A点和On这两点的坐标计算这个向量,On的坐标值计算如下:

使用Geodtic经纬度得到的坐标系的Up方向与椭球表面是垂直的,正好是椭球表面的法线方向。这个局部坐标ENU是很多三维GIS类软件在设计使用使用的局部坐标系统,当给定经纬度需要把模型放置在指定位置的时候,经常会使用这里面的变换,将局部坐标转换到世界坐标中,保证了当物体在放置点的位置正好是垂直于地球表面。

参考文章:

电子海图制作中坐标转换的应用与实现 在电子海图制作过程中,海图数据中的所有点线面物标的空间信息均是以WGS-84坐标系统下的经纬度存储的,这样可以惟一确定该物标。但是国内由海事局提供的CAD格式的矢量海图为BJ-54格式,因此,在制作电子海图时,利用海事局提供的矢量海图,根据该坐标系统下的物标的地理位置即BJ-54下的平面坐标进行定位处理时,要转换为WGS-84坐标下的经纬度,需重新定位。本文针对此问题作出研究,在保证高精度的前提下,完成坐标的实时转换。 首先利用ArcObjects组件的Mapcontrol控件,实现矢量地图的导入及地图坐 阅读详情

相关推荐

Cesium for Unity实战:从零搭建数字孪生地球与性能优化指南

在三维地理信息系统(GIS)与实时渲染领域,将真实世界的地理空间数据与交互式三维场景结合,是实现数字孪生、智慧城市等应用的核心。其原理在于通过全球地理坐标系(如WGS84)与本地渲染坐标系的精确转换,实现海量地形、影像和三维模型数据的流式加载与高效渲染。这项技术的价值在于,它让开发者能够在强大的游戏引擎生态中,无缝集成专业级的地理数据,极大地拓展了仿真、规划和可视化项目的边界。Cesium作为业界领先的Web端三维地球库,通过与Unity引擎的深度集成,为开发者提供了这一能力。本文聚焦于Cesium for

weixin_30667649的博客 808

第一人称操作器

#pragma once #include<osgGA/CameraManipulator> #include<osgViewer/Viewer> class FirstPersonManipulator :public osgGA::CameraManipulator { public: FirstPersonManipulator(); ~FirstPersonManipulator(); virtual void setByMatrix(const osg::Ma.

学习是为了探索这个世界的本质 679

从地球中心到你的屏幕:Cesium for UE5地理参考(Georeference)的三种原点设置全指南

本文全面解析了Cesium for UE5中地理参考(Georeference)的三种原点设置方法:TrueOrigin、BoundingVolumeOrigin和CartographicOrigin。通过深入探讨ECEF坐标系、精度优化策略及实战应用场景,帮助开发者在全球精度与本地性能之间找到最佳平衡点,适用于数字孪生、GIS可视化等地理空间项目。

weixin_29012765的博客 122

osg视角切换,第一人称和第三人称切换

osg视角切换,第一人称和第三人称切换

WithHair的博客 1139

Cesium for Unreal实战:编译自定义GlobePawn与鼠标交互控制

在数字孪生、智慧城市和开放世界游戏开发中,将真实地球场景集成到虚拟环境是一个核心需求。这通常涉及地理空间数据与实时渲染引擎的融合,其技术原理在于解决不同坐标系(如UE局部坐标与WGS84地理坐标)之间的转换问题。通过实现自定义的交互控制器,开发者能够为地球模型赋予流畅的鼠标控制能力,如拖拽、旋转和缩放,从而显著提升三维地理信息可视化、仿真训练等应用场景的用户体验。本文以Cesium for Unreal插件为基础,深入探讨了如何从零构建并编译一个名为GlobePawn的自定义交互角色,并详细解析了鼠标拖动旋

weixin_34060741的博客 379

Unity中实现三维高斯泼溅:实时海量点云渲染实战

三维重建与实时渲染是计算机图形学领域的核心课题,旨在从离散数据中高效生成逼真的三维场景。其原理通常涉及对场景的数学表征与高效的光栅化算法。在技术价值上,它打破了高质量渲染与实时性能间的壁垒,使得海量空间数据得以流畅可视化。应用场景广泛,涵盖数字学生、智慧城市及文化遗产数字化等领域。本文聚焦于三维高斯泼溅这一前沿技术,它利用带各向异性协方差的高斯椭球表征场景,并通过高度优化的GPU计算管线实现实时帧率。文中深入探讨了在Unity引擎中,基于计算着色器管线自研实现该技术的完整方案,涵盖了从数据预处理、核心算法实

weixin_30399155的博客 454

osg指定路径点漫游器

五,漫游器的朝向,不是坐标系的XYZ轴,而是PItch,roll,yaw,所以,要涉及到一个球面坐标转向XYZ坐标系的过程,由于在初始化时, m_vRotation = osg::Vec3(osg::PI_2, 0, -osg::PI_2);这里用到了路径点,从X轴正向开始,所以再减去90度,使look方向的初始方向为X轴正向,便于计算。值得注意的是,朝向要绕X轴转90度,才能和默认漫游器一样,look方向指向Y轴正向,即。本来打算用现成的路径点漫游器,发现很不好用,限制也多,干脆自己写一个得了。

coder 756

UE5集成Cesium避坑指南:12个实战问题解决与Sequence卡顿优化

在数字孪生与智慧城市等三维可视化项目中,大规模真实地理场景的实时渲染是核心技术挑战。其核心原理在于通过流式加载技术,动态调度与渲染海量地理空间数据,以平衡视觉质量与运行时性能。这项技术的核心价值在于能够将庞大的真实世界数据无缝接入实时渲染引擎,为城市规划、模拟训练等应用提供高保真、可交互的环境。然而,在实际工程实践中,尤其是在与UE5 Sequencer制作过场动画结合时,开发者常会遇到模型加载失败、位置偏移、材质丢失以及严重的播放卡顿等问题。本文聚焦于UE5环境下使用CesiumForUnreal插件的典

weixin_33726318的博客 389

C++学习(三一四)osg漫游器Manipulator例子

osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> _manipulator; _manipulator = new osgGA::KeySwitchMatrixManipulator; _manipulator->addMatrixManipulator( '1', "Trackball", new osgGA::TrackballManipulator() ); _manipulator->...

hankern的专栏 1541

C++核心概念深度串联:从数学隐喻到现代编程实践

在编程语言设计中,抽象思维和数学逻辑往往为复杂工程问题提供深刻的解决思路。以C++为例,其语言特性背后蕴含着与线性代数等数学概念的深刻共鸣,例如合同矩阵所体现的“接口与实现分离”思想,以及惯性指数所强调的“核心约束识别”原则。这些原理不仅构成了现代C++面向对象和泛型编程的理论基础,更在实际工程中展现出巨大价值。通过委托构造、继承控制(final/override)和=delete等特性,开发者能够实现更安全、更清晰的代码设计,有效管理对象生命周期和类关系。而可变参数模板类作为现代C++泛型编程的核心,则进

weixin_30681615的博客 378

激光雷达实战:从点云处理到3DGS渲染的森林环境SLAM全流程解析

激光雷达(LiDAR)作为三维感知的核心传感器,其工作原理是通过发射激光束并测量反射时间来获取高精度三维点云数据。这项技术为机器人、自动驾驶等领域提供了关键的环境几何与语义信息。在工程实践中,处理海量、嘈杂的点云数据并从中提取稳定特征是一大挑战,这直接推动了如SLAM(即时定位与地图构建)等算法的发展。SLAM技术通过帧间匹配和优化,实现了移动平台在未知环境中的实时定位与地图构建,其价值在于为自主导航、高精地图生成等应用提供了基础。尤其在森林等非结构化复杂场景中,传统几何特征匹配容易失效,因此融合了语义信息

weixin_30644369的博客 443

3D高斯点云与UE5实时渲染:从原理到落地的完整工作流解析

三维重建技术旨在从二维图像中恢复场景的三维结构与外观,其核心原理是通过多视角几何与优化算法,计算空间点的位置与属性。传统方法如网格重建与神经辐射场(NeRF)在追求高保真度时,常面临计算开销大、实时性差、难以与动态光照交互等技术瓶颈。3D高斯点云作为一种新兴的显式场景表示方法,通过大量带属性的椭球基元来表征场景,在保留丰富视觉细节的同时,其渲染过程高度适配现代GPU的并行光栅化管线,从而在效率与质量间取得了突破性平衡。这项技术的核心价值在于,它能够将照片级真实感的重建结果,无缝集成到实时渲染引擎中,实现动态

weixin_33681778的博客 374

谷歌地球Pro便携版全功能实战指南

简单说,就是把地图切成无数个小瓦片(Tile),按缩放级别分层存储:第0层:全球概览,分辨率最低(比如1公里/像素)第1层:放大一点,分辨率翻倍……第20层:街道级细节,分辨率高达0.3米/像素每一层的地图都被切成256×256 或 512×512 像素的小块,就像马赛克瓷砖。当你缩放时,客户端只请求当前视野内所需的瓦片,而不是整张图。数学上,第 $ n $ 层的分辨率为:也就是说,每放大一级,分辨率提升一倍,数据量也翻四倍(面积增长)。

weixin_42315569的博客 1432

SuperMap iClient3D for WebGL 使用说明

最近由于公司需要用的superMap相关的技术,本人之前也从未接触过这方面的东西,也是从零开始,边做边学。下面简单对本次项目进行一个技术总结,希望对各位没有经验的人有所帮助。SuperMap iClient3D for WebGL 官方文档。

weixin_46631365的博客 1720

电商数据分析19——数据分析在电商平台价格弹性研究中的应用

价格弹性是一个衡量产品价格变化对销量影响的经济学指标,对于电商平台而言,深入理解和有效运用价格弹性,对于制定竞争策略、优化产品定价具有重要意义。随着大数据时代的到来,通过数据分析研究产品的价格弹性,成为了电商企业制定价格策略、调整市场定位、优化促销活动的重要依据。

theskylife的博客 2836

(一)PyBullet机器人仿真入门:从环境搭建到实例解析

本文详细介绍了PyBullet机器人仿真平台从零开始的完整入门指南。内容涵盖环境搭建、官方示例解析、核心操作(连接、世界与模型)、关节控制与状态读取,以及碰撞检测、传感器模拟等高级功能,帮助读者快速掌握这一强大的机器人仿真工具。

weixin_29062865的博客 1382

神经辐射场在自动驾驶中的应用:从逼真仿真渲染到新型场景表示与理解

神经辐射场(NeRF)通过隐式神经网络建模三维场景,实现了从稀疏视角合成逼真新视角图像的能力。这一技术为自动驾驶带来了革命性应用:在仿真渲染中,NeRF能生成高保真传感器数据,有效弥合仿真与现实的鸿沟;作为新型场景表示,NeRF可融合多趟采集数据,构建可编辑、可查询的隐式地图,支持感知、定位、在线建图等任务。本文系统阐述NeRF的核心原理(体渲染、位置编码、分层采样),深入剖析其在自动驾驶数据生成、场景重建、闭环仿真、感知增强、定位建图等领域的应用进展,分析当前面临的计算效率、动态场景、泛化性等挑战,并展望

AladdinEdu,你的AI学习实践工作坊。让想法落地,让研究加速。助力高校AI人才成长,点亮创新未来。 442

IDEA 2023最新破解教程:从安装到永久激活(附常见问题解决方案)

本文为Java开发者提供了一份详尽的IntelliJ IDEA 2023高效使用指南。内容涵盖从版本选择、安装配置到核心快捷键、项目依赖管理、高级调试测试以及插件生态的深度优化。旨在帮助用户在合法合规的前提下,充分发挥这款顶级IDE的潜力,显著提升Java开发效率与工作体验。

time3的博客 3368

倾斜摄影OSGB与3DTiles在Unity中的选型与落地实践

倾斜摄影是数字孪生、智慧城市和实景三维可视化的核心数据源,其在Unity引擎中的加载本质是地理空间数据到实时渲染管线的映射问题。OSGB代表离线高保真地理快照,依赖本地完整资源与坐标转换;3DTiles则是面向网络的动态流式协议,强调按需加载与LOD调度。二者差异远超文件格式层面,涉及坐标系(WGS84/UTM/Unity直角坐标)、材质系统(PBR vs Phong)、渲染管线(URP/HDRP适配)及内存模型(WebGL沙箱限制)。实际工程中,选错技术路径将导致坐标偏移、材质丢失、LOD撕裂或WebGL

weixin_33824385的博客 536

功能安全入门:手把手教你用IEC 62380标准计算芯片失效率(附SN 29500对比)

本文深入解析了IEC 62380标准在芯片失效率计算中的应用,对比了SN 29500的差异,并提供了实战案例和避坑指南。通过详细的参数获取方法和分步计算演示,帮助功能安全工程师准确评估芯片可靠性,确保设计符合安全要求。特别适合汽车电子和工业控制领域的专业人士参考。

weixin_30363981的博客 317

MFC Tab Control控件完全指南:从基础使用到高级定制

本文详细介绍了MFC中TabControl控件的使用方法和高级技巧。主要内容包括:1) TabControl基础属性设置与绑定;2) 样式定制和外观自定义;3) 创建派生类实现扩展功能;4) 动态页面管理和子对话框控制;5) 高级功能如标签拖拽排序和右键菜单。通过完整代码示例,展示了从基本应用到复杂场景的实现方案,包括多标签页管理、自定义绘制、动态添加/删除标签等核心功能,为MFC开发者提供了全面的TabControl开发指南。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 259

UE5实时3D高斯渲染插件:原理、部署与性能优化全解析

3D场景重建与渲染是计算机图形学的核心领域,旨在从二维图像生成高质量的三维模型。其原理通常涉及从多视角图像中提取几何与外观信息,并通过算法合成新视角。随着神经辐射场(NeRF)等技术的发展,该领域在逼真度和细节上取得了突破,但其训练和渲染速度慢,难以实时交互。3D高斯渲染(3D Gaussian Splatting)作为一项新兴技术,通过使用数百万个带有颜色、透明度和方向性的“高斯球”来表示场景,并采用基于瓦片的排序与阿尔法混合进行渲染,在GPU上实现了高效的并行计算,从而在消费级硬件上达到了实时渲染的能力

weixin_30471561的博客 499

一分钟理解 “熔断“, “限流“ 与 “降级“

熔断,本质是一种“故障隔离”机制,用于当某个依赖服务出现持续故障(如响应超时、错误率飙升)时,暂时切断对该服务的调用,避免故障扩散到整个系统,防止“雪崩效应”;待依赖服务恢复正常后,再逐步恢复调用。其核心逻辑参考了现实中的“电路保险丝”——电路过载时,保险丝熔断,切断电路,保护电器不被烧毁;故障排除后,更换保险丝,电路恢复正常。闭合状态(Closed):正常状态,请求可以正常调用依赖服务,同时监控调用的错误率、超时率等指标。打开状态(Open)

h a 6 6 6 c k 为 你解决复杂难题! 1472

Unity加载倾斜摄影模型:五大核心问题与实战解决方案

在三维可视化与数字孪生项目中,倾斜摄影模型因其能高精度还原大规模实景而成为关键技术。其核心原理在于通过多角度摄影测量生成带纹理的三维网格,并以瓦片化金字塔结构(如3D Tiles)组织数据,以实现高效的流式加载与细节层次(LOD)调度。这项技术的价值在于为智慧城市、工程仿真等领域提供了真实世界的数字基底。然而,在将其集成到Unity等实时引擎时,开发者常面临模型加载、坐标系转换、性能优化等工程挑战。本文聚焦于解决纹理路径错误、坐标偏移等核心难题,并深入探讨了如何通过定制Shader实现实景模型与动态光影的自

cihongmo6452的博客 505

【原创】汇川H5U PLC控制伺服的方法

6、在线调试-进入伺服调试,可以在本软件上进行调试,可以实现原点回归、正向点动、反向电动、使能(这里使能打开时触摸屏上的使能不能打开,会冲突)、复位、停止(如下图所示)。5、在原点返回设置中一般情况下对原点信号、正限位、负限位、原点返回方向、原点返回方式进行设置,其他设置默认不改(如下图所示)。3、在单位换算设置上只需要修改脉冲数和移动量(根据伺服配套导轨上名牌进行设置),其他设置默认不改(如下图所示)。11、双击后右边出现编辑框 在上半部分定义变量(IN、INOUT、OUT、VAR)(如下图所示)。

Qinmingyue13的博客 6666

轴承寿命预测 | 基于BiLSTM双向长短期记忆神经网络的轴承寿命预测附matlab完整代码

轴承寿命预测 | 基于BiLSTM双向长短期记忆神经网络的轴承寿命预测附matlab完整代码

默默科研仔的博客 274
上一篇: OpenGL的视图变换与OSG漫游器
下一篇: 使用Visual Studio编译Geos
csxiaoshui
博客等级 码龄16年 873粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值