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

本文介绍了在数字孪生可视化场景中如何测量不同目标之间的距离。通过确定起点和终点坐标,利用Three.js或类似库计算空间距离。详细步骤包括添加事件监听、构造测量线对象、鼠标交互操作以及绘制和计算多点线段长度。提供了实现此类功能的操作流程。
摘要由CSDN通过智能技术生成

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

运行效果如下:

在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) {
       
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值