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的博客 2378

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

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

smile_hahahaxixi的博客 7370

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的博客 2617

ThingJS 开发使用感悟

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

似水流年的博客 8564

ThingJS学习

【代码】ThingJS学习。

奔跑的狮子 1472

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

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

u013763202的博客 895

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

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

ThingJS的博客 1716

thingjs 基础案例整理

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

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

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

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

ThingJS的博客 7224

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

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

jclee95的个人博客 6527

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

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

DllCoding的博客 777

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

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

百锦再的博客 2722

ThingJS1.0API学习使用总结

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

宇叔儿 1576

thingjs使用

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

m0_65208646的博客 501

ThingJS学习总结

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

m0_37623485的博客 3574

ThingJS学习笔记

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

qq_34971162的博客 6675

ThingJS 新手学习技巧

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

百锦再的博客 1001

有关echarts、thingJS和threeJS

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

Ada_lake的博客 7046
上一篇: ThingJS让物联网3D动效开发简化并加速渲染
下一篇: ThingJS:让你远程操控城市大屏,管理更高效
ThingJS_小锘
博客等级 码龄6年 169粉丝 254原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值