可视化场景内任意绘制线段并测量距离

three.js 物体3D模型——尺寸测量标注 在开发一些物联网、数字孪生Web3D可视化项目的时候,比如一个工厂、化工厂、变电站、园区等场景,有时候,需要进行一些尺寸测量,比如属于鼠标点击选择模型表面上两点,然后计算两点之间尺寸距离,然后使用箭头和数字进行标注。( 先用鼠标点击按钮进入测量状态,在通过鼠标点击拾取模型任意两点,然后会自动标注 ) 阅读详情

在数字孪生可视化场景中,可能会遇到这个问题,即需要测量数字孪生可视化场景中的不同目标之间的距离。通过这个测量,可以明确的知道可视化场景中各个目标的位置以及各个目标之间的距离,便于做出合理的规划。这个需求并不难,我们需要做的是确定需要测量的对象的坐标点起点和终点位置。

运行效果如下:

在ThingJS中要知道场景中两点间的空间距离可以通过调用三维空间内所有坐标点,计算两个坐标点的距离去量算出两点之间的空间距离,需要通过鼠标点击才能获取到两点之间的空间距离。比如我要知道场景中某两个场景距离有多长,就可以通过鼠标点击两个甚至多个场景位置,来计算三维场景中任意三维点的空间距离。下面一起看一下操作步骤:

1、添加注册事件,注册测量详情界面拖拽事件,设置可拖拽范围不能超出屏幕。

registerEvent() {
        var _this = this;
        // 注册测量详情界面关闭按钮点击事件
        $('#dataDetails .tj-close').on('click', function() {
            $('#dataDetails').css('display', 'none');
        });

        // 注册测量详情界面拖拽事件,设置可拖拽范围,不能超出屏幕
        $('#dataDetails .tj-title').on('mousedown', function(ev) {
            ev.preventDefault();
            var domEle = $('#dataDetails .tj-panel');
            var spacX = ev.pageX - domEle[0].offsetLeft;
            var spacY = ev.pageY - domEle[0].offsetTop;
            $(document).bind('mousemove', function(event) {
                var x = event.pageX - spacX;
                var y = event.pageY - spacY;
                if (event.pageX < 0 || event.pageX > $(window).width() || event.pageY < 0 || event.pageY > $(window).height()) {
                    $(document).unbind('mousemove');
                }
                if (x <= 0) x = 0;
                if (x > ($(window).width() - domEle.width())) {
                    x = $(window).width() - domEle.width();
                }
                if (y <= 0) y = 0;
                if (y > ($(window).height() - domEle.height())) {
                    y = $(window).height() - domEle.height();
                }
                domEle.css('left', x + 'px').css('top', y + 'px');
            });
        }).on('mouseup', function() {
            $(document).unbind('mousemove');
        });

        // 注册单击事件,创建测距线段实例
        app.on(THING.EventType.SingleClick, '*', function(e) {
            if (e.button == 0) {
                _this.lineNum++;
                let line = new Dr
可视化场景内任意绘制多边形并测量面积 一般测量功能主要表现在两方面,一是测量距离,二是测量面积。面积的测量是根据鼠标绘制的范围,通过地理坐标系的转换而计算出实际面积大小,距离的测量是根据鼠标在地图上绘制的点,实时计算出两点之间的实际距离。如何在3D场景中测量面积?下面我就在ThingJS平台实现鼠标任意点绘制多边形面积,计算绘制总长度和占地面积,支持在数字孪生可视化场景内任意绘制多边形并测量面积。 先来看一下实现效果: 实现思路 1、首先是添加注册事件,单击鼠标左键添加点位,鼠标移动持续绘制测量线段,双击或单击鼠标右键结束。 阅读详情

相关推荐

官方案例(十四):3D场景多线段绘制及测坐标点距离 ThingJS

#前端# #CAD# #物联网可视化开发# 创建参数构造器 绘制测量线生命周期 坐标点距离计算 简介:CAD图纸上测量线段是常见功能,3D场景中如何测量线段呢?不需要选取、合并等手动操作,3D界面的测量自带量角功能,实现起来更加流畅。 demo链接:http://www.thingjs.com/guide/?m=sample 创建参数构造器 js是基于对象的编程语言,创建对象的方式多样,常见的有JSON格式创建、构造函数创建。ThingJS使用 Constructor () 作为对象构造器函数,用来

ThingJS的博客 1464

VTK C++ 实现点到线段距离计算:原理、代码与实战应用

在三维可视化与几何计算领域,点到直线或线段的距离计算是一项基础且关键的几何操作。其核心原理基于向量投影与参数化方程,通过计算点在直线上的垂足或到端点的最短距离来实现。这一基础几何功能在工程实践中具有极高的技术价值,是构建更复杂算法的基石,例如在碰撞检测、路径规划、网格质量分析和点云配准等场景中,精确的距离计算直接决定了算法的精度与效率。利用成熟的开源库如VTK(Visualization Toolkit)进行实现,不仅能保证计算的数值稳定性与高性能,还能通过其丰富的几何类(如vtkLine)和数据模型,将基

weixin_30567225的博客 305

UE5蓝图样条线实战:构建3D场景测量尺工具

在游戏开发与虚拟场景构建中,空间测量与比例验证是确保场景真实性与设计准确性的基础需求。其核心原理在于通过数学计算获取三维空间中的距离信息,并实现可视化反馈。样条线(Spline)作为一种定义空间曲线路径的数学工具,结合SplineMesh组件动态生成网格的能力,构成了实现这一功能的高效技术方案。该方案的价值在于,它提供了一种数据驱动、实时交互的可视化测量手段,极大提升了场景搭建与关卡设计的迭代效率。在应用场景上,无论是PC端还是移动端,均可通过蓝图系统快速实现,例如结合“ue5双指触摸蓝图”实现移动端的直观

weixin_28309723的博客 388

Halcon几何距离计算实战:从点到区域的精准测量

本文详细介绍了Halcon几何距离计算算子的实战应用,包括distance_pp、distance_pl和distance_pr等核心算子的使用技巧。通过工业视觉检测案例,展示了如何实现从点到区域的精准测量,提升生产线检测效率与精度。文章还分享了坐标系统理解、批量计算方法和高级测量技巧,助力开发者掌握Halcon距离计算的核心技术。

weixin_29294395的博客 309

基于ArcGIS JS实现仿百度地图的距离与面积测量功能

ArcGIS JavaScript API 是 Esri 提供的前端地图开发框架,基于 Dojo 构建,支持模块化加载。其核心由MapMapViewGraphicGeometry和等类构成。Map负责管理图层集合,MapView实现二维视图渲染与用户交互,二者需协同工作以展示地理数据。});该架构遵循“数据与视图分离”原则,便于扩展与维护,是构建测量应用的基础支撑体系。在启动测量功能时,通常需要进入“绘制模式”,此时应关闭默认导航,转而监听指针事件进行轨迹捕捉。

weixin_30820933的博客 795

Webgl(ThreeJS)空间测量\测距功能。

Webgl(ThreeJS)实现的3D空间测量\测距功能,通过换算,可测出实际大小距离。 文章介绍: https://blog.youkuaiyun.com/Highning0007/article/details/124440169

S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析

本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。

weixin_29174141的博客 227

Dify插件离线部署全攻略:从下载到安装的完整流程

本文详细介绍了Dify插件离线部署的完整流程,针对企业内网等无网络环境需求。核心步骤包括在联网环境下载插件包、在特定Python 3.12.9环境下使用专用工具进行离线重打包,以及最终在离线Dify环境中安装验证。重点解决了离线安装的核心难题,并提供了环境配置、批量处理和故障排查等实用技巧,帮助用户实现Dify插件的顺利离线部署。

seed的博客 659

【上海大学计算机组成原理实验报告】六、内存系统实验

学习内存访问机制//理解代码和数据的分区存放原理和技术//手动方式把立即数`33H`写入内存`D1H`单元//手动方式把`D1H`单元的内容读出,再送入`ST`单元//在`CP226`汇编语言程序集成开发环境下编写程序//既然有`ORG`微指令,为什么集成开发环境下载到实验箱的目标程序的第一条执行语句最好存放在0号地址?//上海大学计算机组成原理实验//内存系统实验

HackerKevon的博客 3129

论文选题难?7种AI加持的万能选题法(全专业通用+工具实测)

AI时代学术选题新范式:7大智能方法破解研究痛点 传统选题方法面临范围失控、资料难寻、创新不足三大痛点,本文提出AI赋能的7种选题方法论: 1.现象+群体法:自动抓取热点与人群特征 2.理论+场景法:经典理论与新兴场景匹配 3.技术+问题法:前沿技术与领域痛点结合 4.对比+变量法:时空维度与变量关系分析 5.热点+理论法:事件传播与理论深挖融合 6.微调+变量法:已有选题变量置换创新 7.AI全流程法:关键要素智能迭代生成 同时警示AI使用的伦理边界,需规避虚构文献、伪造数据等风险,并提供针对本科生、研究

Conan_0728的博客 1883

三个原则判定电源环路稳定性

环路稳定性测试接线图如图2所示,将信号电阻(Inserted Resistor )接入电源的环路控制电路中,注入一特定幅度和频率范围的扫频干扰信号(OUT),当干扰信号达到一定的幅度时,环路系统便对干扰信号有所响应,然后使用频率响应分析仪对电源环路输出端(CH2)和电源环路干扰信号注入端(CH1)同时进行比值跟踪测量,则可以得出频率与增益和相位的关系曲线图——波特曲线图(Bode Plot Graph),如图1所示。相位裕度,增益裕度,穿越频率,如图(波特图)所示。相位容限即相位裕度,增益容限即增益裕度。

经营范围: CTA、SRRC、CCC、移动、电信、联通入库 3740

1.嵌入式控制器EC学习,编译环境搭建

工欲善其事,必先利其器。 在学习EC相关知识之前,首先需要完成EC代码编译环境的搭建,需要如下内容: Keil C51(用于EC中C代码的编译器环境) EC源代码,我们使用从网上可以下载到的 ITE_V12.4_Update 版的代码为例进行学习 代码编辑器,这个可以根据自己的习惯选择,VS Code或者Source Insight等 Keil C51下载地址: http://www.downcc.com/soft/307131.html 下载完成后请进行破解 EC源代码 ...

qq_30135687的博客 3918

YOLO26创新改进 | 全网独家创新篇、小目标检测专属 | AAAI 2025 | 引入HS-FPN中的HFP和SDP创新点,从频域增强小目标特征,淘汰FPN进行升级,助力YOLO26有效涨点

本文提出HS-FPN特征金字塔网络,通过高频感知模块(HFP)和空间依赖感知模块(SDP)优化YOLO26模型。HFP利用高通滤波器增强小目标的高频特征,SDP捕获相邻像素的空间依赖关系。在AI-TOD等小目标检测数据集上,HS-FPN相比传统FPN显著提升性能。文章详细介绍了HFP和SDP的模块结构、核心代码实现,以及如何在YOLO26中集成这两个模块的配置方法,提供了多个版本的yaml文件配置方案。实验结果表明该方法能有效改善微小目标检测效果。

Ai缝合怪、助力小伙伴高效发论文 208

企业微信开发007_域名主体校验未通过,需配置备案主体与当前企业主体相同或有关联关系的域名_企业内部自建应用开发_配置可信域名_回调URL_可信IP---企业微信开发009

因为我这个企业微信是,已经注册了服务商了,所以我又注册了一个不是服务商的测试企业,没有实名认证的,去试了试。而且,网络上找的教程,都是不够详细的,还是会碰到各种各样的问题,记录下来,为后来者提供便利。首先我用natapp.cn 申请了一个免费的域名,然后去,一个,企业微信上去配置,注意。我这个域名,的主体,可能是域名服务商,比如阿里域名 等等的 不是一般的企业域名。我这个企业微信,是开通了服务商的,企业微信,右上角有服务商管理后台的。到时候,直接用,他们自己企业注册的域名,已经备案的再去尝试,

添柴程序猿的专栏 1700

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 可视化场景内任意绘制多边形并测量面积
下一篇: 电子围栏可视化,提高安全运维效率
ThingJS_小锘
博客等级 码龄6年 170粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值