ThingJS不仅实现矩形、多边形的创建,也能够开发控制圆形

ThingJS开发使用感受 出于为了实现有关厂区的数字孪生项目,断断续续使用ThingJS平台开发一年左右,做一个使用感受的总结。在编码方面,笔者的编码方式和博客中的描述基本一致:“由于平台提供的代码编码端体验不佳,我们不得不先在本地进行开发,再将相关代码复制到在线平台,而调试修改代码也是如此繁琐”。个人感觉至少现阶段的ThingJS还是比较适合去做一些简单的业务场景、数据交互简单的项目,类似于大屏展示,这种纯数据展示;如果要实现一个较为庞大复杂的业务场景时,就不太方便,开发难度也会随之增加。 阅读详情

只有封闭曲线才有"内部"与"外部"之别.例如,椭圆是封闭曲线,故有椭圆的内部与椭圆的外部的概念。ThingJS不仅实现矩形、多边形的创建,也能够开发控制圆形。
1.jpg

矩形区域和圆形区域都很好画,大部分建模工具可直接拖拽生成,但多边形区域则需要确定多边形要经过的点,得出多边形的最终形状。

ThingJS绘制多边形区域,以矩形和圆形为例,效果展示如下图。
2.jpg

ThingJS在线平台通过获取多个点坐标来确定多边形的形状,例如矩形获取4个世界坐标系下的坐标组合,构成多边形或矩形的点。

 var points = [[0, 0, 0], [5, 0, 0], [5, 0, 5], [0, 0, 5]];

如果是圆半径,获取圆半径和圆心世界坐标后,需要根据圆形和半径计算坐标点。

var radius = 3;// 圆半径
    var center = [10, 0, 0]; // 圆心世界坐标
    // 根据圆形和半径计算坐标点
    var points = [];
    for (var degree = 0, y = 0; degree <= 360; degree += 10) {
        var x = Math.cos(degree * 2 * Math.PI / 360) * radius;
        var z = Math.sin(degree * 2 * Math.PI / 360) * radius;
        var pos = THING.Math.addVector([x, y, z], center);
        points.push(pos);
    }

创建区域需要定义一个type属性PolygonRegion,传入点坐标并按照自己喜欢的样式,设置区域颜色、边框颜色或不透明度等。

完整官方示例供参考。

/**
 * 说明:创建多边形区域
 */
var app = new THING.App({
    url: 'https://www.thingjs.com/static/models/storehouse'     // 场景地址
});

new THING.widget.Button('创建区域', function () {
    // 构成多边形的点(取世界坐标系下的坐标)
    var points = [[0, 0, 0], [5, 0, 0], [5, 0, 5], [0, 0, 5]];

    // 创建区域
    var region = app.create({
        type: 'PolygonRegion',
        points: points, // 传入世界坐标系下点坐标
        style: {
            regionColor: '#ff0000', // 区域颜色
            lineColor: '#00ff00', // 边框颜色
            regionOpacity: 1 // 不透明度 (默认是 0.5 半透明)
        }
    })
})

new THING.widget.Button('创建圆形区域', function () {
    var radius = 3;// 圆半径
    var center = [10, 0, 0]; // 圆心世界坐标
    // 根据圆形和半径计算坐标点
    var points = [];
    for (var degree = 0, y = 0; degree <= 360; degree += 10) {
        var x = Math.cos(degree * 2 * Math.PI / 360) * radius;
        var z = Math.sin(degree * 2 * Math.PI / 360) * radius;
        var pos = THING.Math.addVector([x, y, z], center);
        points.push(pos);
    }

    // 创建区域
    var region = app.create({
        type: 'PolygonRegion',
        points: points, // 点坐标
        style: {
            regionColor: 'rgb(0,0,255)', // 区域颜色
        }
    })
})

new THING.widget.Button('删除', function () {
    var regions = app.query('.PolygonRegion');
    regions.destroy();
})

ThingJS站在前端工程师的角度创建了3D开发神器,纯js语法!

【ThingJS | 3D可视化】开发框架,一站式数字孪生 ThingJS是一个基于WebGL和Three.js的开源3D JavaScript库,用于创建交互式的3D场景和应用程序。它提供了丰富的功能和工具,使开发人员能够简单而高效地构建各种类型的3D应用。ThingJS支持导入各种3D模型格式,并提供了各种渲染效果和交互功能,例如阴影、光照、碰撞检测等。 阅读详情

相关推荐

ThingMap一键城市2.0重新出发:快速生成三维城市

在城市级可视化项目中,一般需要可视化的三维地图作为承载各种应用的载体,但大家在使用三维地图的过程中经常碰到3道难题:1、资源获取不便2、操作使用复杂3、模型效果不理想。为了降低三维地图的获取和使用难度,以及提升地图效果调整的便利性,需要建立一个服务城市级可视化应用的三维地图服务平台,能够便捷地获取和使用心仪的三维地图。 一键城市2.0(ThingMap)是ThingJS平台推出的在线3D城市模型场景快速生成系统,所生成的3D城市模型场景,可用于快速构建网页版3D城市类型的管理应用。无论是在大屏监控应用,还

ThingJS的博客 2384

数字孪生——thing.js和three.js

本文讲了thing.js和three.js的对比及它们的应用

smile_hahahaxixi的博客 7395

ThingJS1.0API学习使用总结

文章声明,此文章为本人方便查找使用,学习积累ThingJSAPI的个人总结,原创API请查看ThingJS官网http://www.thingjs.com!!

宇叔儿 1584

ThingJS 开发使用感悟

ThingJS 隶属于北京优锘科技有限公司,是优锘科技旗下物联网三维可视化开发平台。ThingJS采用JavaScript开发语言,主要面向前端程序员和实施人员。ThingJS平台让传统企业无需组建3D可视化开发团队,也能开发3D可视化应用。以上解释来自百度百科,我相信应该是由其官方人员编写的。简单的说,ThingJS 是由国人开发的(北京优锘),需要付费使用的,基于ThreeJS封装的一个 3d 可视化开发平台。.....................

似水流年的博客 8594

使用ThingJS和Unity3D轻松构建3D可视化数字孪生世界

在菜单项的回调函数中,我们可以设置导出路径和文件名,然后使用Unity3D的BuildPipeline.BuildPlayer函数将场景导出为WebGL格式的文件。ThingJS是一个基于Web的3D可视化引擎,它提供了丰富的功能和工具,用于创建交互式的3D场景和模拟环境。上述代码创建了一个名为"MyScene"的脚本,它将两个游戏对象(object1和object2)添加到场景中,并在启动时初始化它们的位置和旋转。在浏览器中,我们可以与场景中的对象进行交互,观察它们的行为和相互作用。

DllCoding的博客 787

CentOS 环境 sngrep 安装及使用

在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对 SIP 信令的抓包,sngrep 则更为好用。因为 sngrep 不仅提供了图形界面,还会将一通会话的 SIP 信令关联汇总,非常直观执行以下命令下载 的相关依赖库 1.2 添加 sngrep 的源并导入 执行下面的命令新增一个源仓库配置文件 然后在该文件中写入以下配置内容 执行命令导入源仓库的公钥 1.3 安装 sngrep

谈谈1974 8150

ThingJS学习

【代码】ThingJS学习。

奔跑的狮子 1478

从Live2D到Unreal Engine:2D与3D虚拟数字人核心技术实现路径解析

本文深入解析了从Live2D到Unreal Engine的2D与3D虚拟数字人核心技术实现路径,涵盖技术选型、制作流程与优化技巧。通过对比2D骨骼动画与3D建模渲染的差异,结合实战案例,帮助开发者根据项目需求选择合适方案,提升虚拟数字人的交互体验与视觉效果。

weixin_30379531的博客 149

优锘科技:ThingStudio森工厂掀起数字孪生龙卷风暴

在ThingStudio森工厂中,最方便灵活的园区搭建工具就是CampusBuilder森园区。 它是基于ThingJS三维引擎,以简洁的界面布局、直觉式交互操作,将复杂专业的虚拟仿真制作简化成拖拖拽拽、拼搭组装的方式。像玩游戏一般让人人都能搭园区,为用户降低门槛、减少成本、提高效率、轻松高效制作3D园区。搭建好的3D场景还能以标准格式提供给其他工具或平台使用。 0基础组装真孪生应用 在ThingStudio森工厂中,有个入门级的数字孪生交付平台ThingJS-X,能降低门槛,以更低的交付成本,更

u013763202的博客 903

WVP-GB28181-Pro配置避坑指南:从零到上线全流程详解(含ZLM自动同步技巧)

本文详细解析了WVP-GB28181-Pro视频平台的配置流程,特别针对国标视频平台部署中的常见陷阱,如stream-ip/sdp-ip配置错误、ZLM自动同步问题及端口冲突等,提供了实用的解决方案和优化建议,帮助开发者快速实现从零到上线的全流程部署。

weixin_30836759的博客 93

顶级的FDE需要拥有哪些技能?

上一篇《》说明白了什么是FDE。这一篇回答下一个问题:要成为顶级 FDE,需要哪些具体的技能?要想弄清楚FDE应该有哪些能力,就得先搞清楚FDE要完成哪些工作。同时,有一点是我们要密切关注的:现在是大模型时代,所以我们不能脱离大模型讨论FDE的能力。我们可以把FDE在客户现场需要完成的工作分为四类:破冰与诊断、价值交付、项目与预期管理、沟通与影响。另有两项元能力贯穿始终。以下按工作类别逐一拆解,每项能力配 1 / 3 / 5 分标准,方便对照自评。文末有完整打分工具链接。

mydeman的学习日志 262

一键城市2.0和BuilderPro双双重磅更新,你想要的功能这次全都有!

听说ThingJS两大3D地图场景工具即将迎来重磅更新? 一键城市2.0(ThingMap)是ThingJS平台推出的在线3D城市模型场景快速生成系统,所生成的3D城市模型场景,可用于快速构建网页版3D城市类型的管理应用。支持海量基础三维空间数据在不同尺度下的快速加载、渲染、显示,为智慧城市相关应用和企业提供便捷的三维地图沙盘服务; CityBuilderPro(简称:BuilderPro)是CityBuilder的专业升级版,支持3D建筑、路网、动效等多种特效图层样式,实现自主性的 3D 可视化城市效

ThingJS的博客 1721

新手避坑指南:用镭神C32和KVH 1750 IMU做标定,为什么直接上lidar_align会失败?

本文详细解析了使用镭神C32激光雷达和KVH 1750 IMU进行标定时常见的失败原因及解决方案。从IMU的微分传感器特性到Lidar-IMU标定的数学本质,再到可行的标定方案和实操注意事项,帮助新手避开认知陷阱,掌握正确的标定方法。

weixin_30162121的博客 328

thingjs 基础案例整理

ThingJS是一套面向物联网应用的3D可视化PaaS开发和运营平台,它以“ThingJS云视PaaS服务”形式面向广大物联网企业提供全生命周期在线3D可视化服务。

“跟他人学,和自己比” 1521

A-Frame引擎开发:A-Frame基础入门_(11).A-Frame物理引擎集成

在上一节中,我们学习了如何在A-Frame中创建基本的3D场景和交互元素。然而,为了使虚拟现实游戏更具真实感和互动性,物理引擎的集成是必不可少的。物理引擎可以模拟现实世界中的物理行为,如重力、碰撞、摩擦等,从而增强用户的沉浸感。物理引擎在虚拟现实游戏中的重要性不言而喻。它不仅能够模拟物体的运动和相互作用,还能为游戏提供更真实的反馈和体验。例如,当玩家在虚拟世界中推动一个物体时,物理引擎可以确保物体按照预期的方式移动,而不是简单地穿墙而过或突然消失。重力是物理引擎中最基本的特性之一。在A-Frame中,我们可

chenlz2007的博客 797

达梦数据库导入报错:[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告dimp V8,本地编码:PG_GBK, 导入文件编码:PG_UTF8

达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告。4.无视警告,输入y,回车。

十三月的博客 1万+

ThingJS 和Threejs在3D开发框架性能上,谁更优秀?

开头: 1、 WebGL是一个3D画图标准协议,在浏览器上生成,对开发处理能力要求高,所以只懂JavaScript语言是不够的。WebGL网页组成成分:HTML5、JavaScript和GLSL ES(着色器语言 OpenGL ES),信息量很庞大,对于小型商业项目难免投入太大,尤其是非开发人员,是很难理解的。所以,基于WebGL底层技术的3D开发工具应运而生。 封装是一种艺术,把晦涩难懂的图形学理论都抽象化了,只需要搬运即可。ThingJS不仅仅在技术上简化了开发方法,通过官方示例来以引导JS开发人

ThingJS的博客 7231

超十万字解读Spring AI实战:开篇

大模型技术正以惊人的速度改变世界,2025年的人工智能已不再是科幻,而是现实。大模型如ChatGPT等,正在重塑各行各业,降低技术门槛,使专业能力普及化。SpringAI的出现为Java开发者提供了桥梁,使其能在企业级系统中稳定运行AI,同时保持工程化思维。尽管SpringAI在生态、学习成本和性能上存在不足,但其企业级基因和国产化适配能力使其成为Java开发者的重要工具。本系列文章旨在介绍SpringAI的功能与特性,鼓励更多Java开发者参与AI实践,共同探索AI时代的无限可能。

liaokailin的专栏 1578

数字孪生可视化开发技术(ThingJS)学习笔记

笔者参加了一个有优锘科技(以下简称该公司)举办的数字孪生可视化开发技术训练营培训,该公司研发了低代码 3D可视化开发平台 ThingJS 相关生态链,主要用于以一种低代码简单的方式构建城市、园区等生产生活应用场景下数据展示。这些相关培训的内容也是本文的记录点。..............................................................................................................................

jclee95的个人博客 6570

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ThingJS开发从入门到精通:构建三维物联网可视化应用的完整指南

ThingJS是优锘科技推出的物联网三维可视化开发平台,基于WebGL技术构建,支持低代码开发和跨平台应用。其技术架构包含场景图系统、实体组件系统、材质系统等核心组件,广泛应用于智慧城市、工业互联网等领域。开发环境配置简单,通过ThingJS CLI工具可快速创建项目。基础概念包括核心对象模型(App、Scene等)、场景创建与管理、对象操作与查询等。实战示例展示了智慧园区监控应用的开发流程,包括场景加载、3D对象创建、事件处理等功能。事件系统支持鼠标/触摸事件、对象生命周期事件和自定义事件,具有冒泡和拦截

百锦再的博客 2832

假人有限元模型

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

WebGL:BabylonJS、Threejs、LayaboxJS、SceneJS、ThingJS比较

目前3d技术发展十分迅速,最初是WebGL,这是一种3d绘图协议,它将JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。

2401_82881178的博客 2625

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

thingjs使用

子组件调用父组件中的iframe。当前页面有iframe。

m0_65208646的博客 502

ThingJS学习总结

ThingJS概述 ThingJS 是物联网可视化PaaS开发平台,帮助物联网开发商轻松集成 3D 可视化界面。ThingJS 名称源于 物联网Internet of Things (IoT)中的 Thing (物),ThingJS 使用当今最热门的 Javascript 语言进行开发。不仅可以针对单栋或多栋建筑组成的园区场景进行可视化开发,搭载丰富插件后,也可以针对地图级别场景进行开发。广泛

m0_37623485的博客 3581

ThingJS学习笔记

1.现在模摸搭上建模这个需要专业人员操作 切记需要操作的物品或者建筑一定要设置属性,要不然无法操作 2,建模完毕后要对模型进行2次开发需要到ThingJS控制台上操作 3.进入thisgjs控制台 1.控制台会自动生成代码 //加载场景代码 var app = new THING.App({ // 场景地址 "url": "/api/scene/08c...

qq_34971162的博客 6681

ThingJS 新手学习技巧

场景操作 API 用于对场景进行管理和控制,如创建场景、加载场景、设置场景属性等。THING.Scene():创建一个新的场景。scene.load(url):加载指定 URL 的场景资源。scene.setBackgroundColor(color):设置场景的背景颜色。scene.setSkyBox(skyBox):设置场景的天空盒。ThingJS 是一款功能强大、易于学习的 3D 可视化开发平台,通过本文的学习,新手开发者应该对 ThingJS 有了全面的了解。

百锦再的博客 1028

有关echarts、thingJS和threeJS

之前为了做一个地图和一个像CAD建模的房屋。看了一下echarts和thingJS,threeJS。了解的不太多,现在把自己所稍微了解到的东西记录下来 echarts、thingJS、threeJS是什么 三者应该如何进行使用 三者的具体原理是什么 1. echarts、thingJS、threeJS是什么 echarts echarts 是一个基于JS的数据可视化的图表工具。 可将数据以 地...

Ada_lake的博客 7053
上一篇: ThingJS让物联网3D动效开发简化并加速渲染
下一篇: ThingJS:让你远程操控城市大屏,管理更高效
ThingJS_小锘
博客等级 码龄6年 170粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值