峰静云止 发表于 2024-8-23 13:27:18

看了几十篇论文,实现了个专业算法,用threejs做了个三维人员定位系统示例(

需求

“threejs中能不能给定几组三维坐标(或者CAD绘制的三维多段线),给一个断面形状,直接生成三维管道?”
例如原始CAD图如下:

要求用threejs获取线的三维坐标数据自动生成的三维管道效果图如下:

 
分析

如果直接对每条线用threejs中的 THREE.TubeGeometry 去绘制的话,会出现交岔口出现缝隙的情况,如下图所示:

如何解决交岔口出现缝隙的问题成为了难题。
上网一搜索,发现与之类似的问题,在能源行业,“矿井巷道三维自动建模“这个很热门的话题,很多硕士博士都在研究。
于是果断的在淘宝花了几块大洋买了90天下载文献的账号,开始了下载论文,拜读论文,研究算法的苦逼过程 ...

研究了很多天后,很少有论文能把整个算法流程说的很透彻,都是说个大概原理,细节自己去琢磨吧。。。
直到偶然间发现一本专业书


看了后很有启发,用”半巷道模型“进行处理交叉口,对一些细节进行优化后,终于达到了比较满意的结果。

在线效果地址 https://vjmap.com/map3d/demo/#/demo/map/builtin/objects/03builtinobjtubepathauto
 
三维人员定位系统(示例已开源)

解决了上面的难题后,基于三维巷道可以做很多应用开发,比如“三维人员定位系统”
实现的功能有:

[*]解析CAD图中的三维多段线对象,获取三维线的坐标 (CAD图来源于 https://vjmap.com/app/cloud/#/map/sys_tube?version=v1&mapopenway=GeomRender&vector=false
[*]根据三维线坐标自动建立拓扑关系。(因为绘制的时候是一整条绘制的,需要处理成按节点进行关系分析来处理交叉口)
[*]根据数据自动生成三维巷道和处理交叉口
[*]模拟人员移动数据,在三维图上实时展示人员位置
[*]点击人员可查看详细
[*]可查看人员历史轨迹


[*]可根据一个坐标自动查找最近的出口
实现效果如下:



此示例代码已开源,可访问 https://vjmap.com/effect/person/ 在线查看。
更多示例可查看 https://vjmap.com/map3d/example.html

来源:https://www.cnblogs.com/vjmap/p/18374695
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 看了几十篇论文,实现了个专业算法,用threejs做了个三维人员定位系统示例(