首页 > 编程语言 >看了几十篇论文,实现了个专业算法,用threejs做了个三维人员定位系统示例(已开源)

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

时间:2024-08-22 20:38:09浏览次数:9  
标签:threejs 示例 几十篇 三维 vjmap https com

需求

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

例如原始CAD图如下:

image-20240822194655787

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

image-20240822194923933

 

分析

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

image-20240822195608479

如何解决交岔口出现缝隙的问题成为了难题。

上网一搜索,发现与之类似的问题,在能源行业,“矿井巷道三维自动建模“这个很热门的话题,很多硕士博士都在研究。

于是果断的在淘宝花了几块大洋买了90天下载文献的账号,开始了下载论文,拜读论文,研究算法的苦逼过程 ...

image-20240822200613545

研究了很多天后,很少有论文能把整个算法流程说的很透彻,都是说个大概原理,细节自己去琢磨吧。。。

直到偶然间发现一本专业书 <<矿山巷道三维网络模型构建及空间网络分析技术>>

image-20240822201446618

image-20240822201538076

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

image-20240822201805360

在线效果地址 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

  • 根据三维线坐标自动建立拓扑关系。(因为绘制的时候是一整条绘制的,需要处理成按节点进行关系分析来处理交叉口)

  • 根据数据自动生成三维巷道和处理交叉口

  • 模拟人员移动数据,在三维图上实时展示人员位置

  • 点击人员可查看详细

  • 可查看人员历史轨迹

  • 可根据一个坐标自动查找最近的出口

实现效果如下:

image-20240822202414719

image-20240822202514515

image-20240822202548702

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

更多示例可查看 https://vjmap.com/map3d/example.html

标签:threejs,示例,几十篇,三维,vjmap,https,com
From: https://www.cnblogs.com/vjmap/p/18374695

相关文章

  • tanstack react-form antd示例
    import{useForm}from"@tanstack/react-form";import{zodValidator}from"@tanstack/zod-form-adapter";import{z}from"zod";importtype{FieldApi}from"@tanstack/react-form";import{Button,Input,Radio......
  • ChatGPT协助论文写作各阶段指令示例
    学境思源,一键生成论文初稿:AcademicIdeas-学境思源AI论文写作在学术论文写作过程中,我们经常面临选题、文献综述、研究设计、数据分析、写作润色等多方面的挑战。人工智能技术的发展为这些挑战提供了新的解决方案。ChatGPT作为一款强大的语言模型,能够在论文写作的各个阶段提......
  • 体育数据API纳米奥运会数据API:高阶数据包接口文档API示例⑦
    纳米体育数据的数据接口通过JSON拉流方式获取200多个国家的体育赛事实时数据或历史数据的编程接口,无请求次数限制,可按需购买,接口稳定高效;覆盖项目包括足球、篮球、网球、电子竞技、奥运等专题、数据内容。纳米数据API2.0版本包含http协议以及websocket协议,主要通过http获取数......
  • Ansible Jinja2 使用及示例
    目录Jinja2Jinja2For循环Jinja2If条件Jinja多值合并Jinja2掌握了Jinja才是深入Ansible-playbook的开始Jinja2For循环变量的提取使用{{variable}}{%statementexecution%}括起来的内容为Jinja2命令执行语句{%foriteminall_items%}{{item}}{%endfor......
  • stencil示例
    stencil是一个webcomponents开发框架。pnpmcreatestencilmy.counter.tsx:import{Component,h,Prop,State}from"@stencil/core";@Component({ tag:"my-counter", styleUrl:"my-counter.css", shadow:true,})exportclassMyCou......
  • lwc示例
    lwc是一个webcomponents开发工具。pnpmcreatelwr选择SPA。项目生成后,一些运行时包并不在package.json中,需手动安装。package.json:{"name":"lwrdemo","version":"0.0.1","license":"MIT","private":true,......
  • gpt给出的operator简单示例
    以下是一些有用的Operator的简单示例,这些示例展示了Operator的实际应用和功能。每个示例都是一个独立的Operator,用于处理特定的场景。1.NginxOperator功能管理Nginx实例的部署和配置。示例定义CRDapi/v1/nginx_types.go:typeNginxSpecstruct{Replicas......
  • python map/filter/reduce的用法示例
    fromfunctoolsimportreducedeffunc0(a):"""a:可迭代对象的迭代元素将function应用于可迭代对象的对应元素,并返回一个迭代器,其中包含了所有映射后的结果map(function,iterable,...)function:要应用于可迭代对象的函数。iterable:要进行映射......
  • ansible roles 示例
    目录role构建role编辑roles目录变量文件调用roletasksmain文件taskscreate_dir.yaml,git_checkout.yaml,static_git_pull.yaml文件roleAd-Hoc适用于临时命令的执行,Playbook合适中小项目,Roles适合大项目构建roleRoles主要依赖于目录的命名和摆放,默认tasks/main.yaml是......
  • 在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。
    在PowerShell脚本中调用msiexec进行静默安装,可以通过设置msiexec的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何使用PowerShell脚本执行静默安装。示例PowerShell脚本powershellCopyCode#MSI文件的路径$m......