3D可视化应用开发对每个企业来说都是大工程,需要投入大量的人力物力财力才能做好这项工程,但其实可是化繁为简,不需要大费周章,具体来说,thingjs3D可视化开发平台,基于webgl3D绘制标准,使用最热门的Javascript语言,封装
threejs库
,前端工程师可实现在线开发,可视化场景通过拖拽和简单写一些代码,对接数据源,项目部署之后就可以运行在您的服务器了~真是简单好用呢。
thingjs-面向物联网的3D可视化开发平台
* 说明:将场景中对象展示到界面上
* 操作:点击界面上选择框
* 说明:场景初始化完成后,子物体的显隐、样式默认继承父物体的显隐状态、样式
* 通过 obj.inheritVisible = true/false 控制子物体是否继承父物体显隐状态
// 引入jquery.easyui插件
THING.Utils.dynamicLoad(['lib/jquery.easyui.min.js', 'lib/default/easyui.css'], function() {
var panel =
`<div class="easyui-panel" style="opacity: 0; padding:5px; width: 300px;height: auto;margin-top: 10px;margin-left: 10px; position: absolute; top: 0; left: 0; z-index: 1;background-color: white">
<ul id="objectTree" class="easyui-tree"></ul>
</div>`
$('#div2d').append($(panel));
var app = new THING.App({
url: 'https://www.thingjs.com/static/models/storehouse'
// 这里使用了jquery.easyui的tree插件
app.on('load', function (ev) {
var buildings = app.query('.Building');
buildings.forEach(function (building) {
building.floors.forEach(function (floor) {
// 设置楼层不受建筑显隐控制
// floor.inheritVisible = false
$('#objectTree').parent().css('opacity', 1);
$('#objectTree').tree({
data: getRootData(ev.campus),
checkbox: true,
cascadeCheck: false,
onCheck: function (node, checked) {
app.query('#' + node.id).visible = checked;
// 根节点信息由 建筑 和 室外物体 组成
function getRootData(campus) {
var data = [];
campus.buildings.forEach(function (building) {
data.push(getBuildingData(building));
campus.things.forEach(function (thing) {
data.push(getThingData(thing));
return data;
// 收集 建筑 信息
function getBuildingData(building) {
var data = {
id: building.id,
checked: true,
state: 'closed',
text: building.type + ' (' + building.id + ')'
data["children"] = [];
building.floors.forEach(function (floor) {
data["children"].push(getFloorData(floor));
return data;
// 收集 楼层 信息
function getFloorData(floor) {
var data = {
id: floor.id,
checked: true,
state: 'closed',
text: floor.type + ' (level:' + floor.levelNumber + ')'
data["children"] = [];
floor.things.forEach(function (thing) {
data["children"].push(getThingData(thing));
return data;
// 收集 物 信息
function getThingData(thing) {
return {
id: thing.id,
checked: true,
text: thing.type + ' (' + thing.name + ')'
简单好用threejs库3D可视化平台thingjs,前端工程师会js就可以的,试一下你就知道如何做啦~
3D可视化应用开发对每个企业来说都是大工程,需要投入大量的人力物力财力才能做好这项工程,但其实可是化繁为简,不需要大费周章,具体来说,thingjs3D可视化开发平台,基于webgl3D绘制标准,使用最热门的Javascript语言,封装threejs库,前端工程师可实现在线开发,可视化场景通过拖拽和简单写一些代码,对接数据源,项目部署之后就可以运行在您的服务器了~真是简单好用呢。thin...
Thin
gJS
3D
用来增加视觉效果,给人以更加直观,真实的感觉。
Thin
gJS
3D
框架简化了
开发
工作,面向对象和模块化的特点使得网页代码更加易于管理和维护,并且提供近200个官方示例,直接获取API能力,不需要基于
3D
概念进行
开发
,适合
3D
商业项目快速生成!距离您的业务仅一层之隔,是非
开发
者也容易理解的一种
应用
方法。
Thre
e.
js
是更为底层的
3D
渲染器,提供各式各样的
3D
开发
概念,例如材质、网格、shader、灯光,逐一进行定制化
开发
,要求程序员要有清晰的设计思路,尤其是在
3D
对象类的定义上。
使用
Thre
eJs
从零开始构建
3D
智能仓
库
——第一章写在前面如何实现从最
简单
的开始,构建地面准备——浏览器跨域设置初始化场景、相机、灯光、渲染器创建地板创建控制器及其他完整的代码结束语
最近因为项目需求,需要构建一个
3D
仓
库
,能够显示整个仓
库
的布局以及
库
内货物的情况。于是刚入职两年的小白我毅然决然接下了这个沉重的任务(手动狗头),但是我并没有任何关于
3D
开发
的经验,于是乎就各种翻书查百度...
WebGL是一种
3D
绘图协议,其允许JavaScript和OpenGL ES2.0结合在一起,为H5 Canvas提供硬件
3D
加速渲染,可以借助系统显卡在浏览器里更流畅地显示
3D
场景和模型。
Thre
ejs
是一款webGL框架,由于其易用性被广泛
应用
。
Thre
ejs
在WebGL的api接口基础上,又进行了一层封装。
WebGL原生的api是一种非常低层的接口,需要一些数学和图形学的相关技术。其解决是如何在画布上画图的问题,怎么画点、线、面,怎么上色,怎么贴图,怎么处理光线,视角转动之后怎么换算绘
使用
Thre
eJs
从零开始构建
3D
智能仓
库
——第三章写在前面——目录结构如何添加墙壁、窗户、门添加三面实心的墙壁创建挖去门窗的墙安装门及窗户完整的代码结束语
写在前面——目录结构
这一章我们来完成激动人心的,关于如何鼠标单击选中一个物体,并让该物体周围闪烁白光,并在鼠标点击位置的上方显示该物体的名字。如下图所示:
在开始这章内容的讲解之前,我想先给大家推荐下项目的目录结构,因为这一章我们将要引入...
简单
的说 ,就是一门 绘制
3D
的 javaScript 轻量级框架;
主要采用 ,HTML5 Canvas提供硬件
3D
加速渲染;
于是web 端 ,就能制作出
3D
系统 ,访问就能操作 ,十分方便。
文章目录1.什么是
thre
eJs
Ⅰ.为什么要学这门前沿技术Ⅱ.
应用
场景2. 学习
Thre
e .
js
入门篇 (一)Ⅰ.安装下载Ⅱ. 创建场景、摄像机、渲染器(画布)Ⅲ. 创建坐标系Ⅳ.平面、立方体、球 的创建Ⅴ. 光源的创建Ⅵ.添加投影Ⅶ.鼠标操控三维场景3. 整合代码
什么是
thre
ejs
?
thre
ejs
是一个用于在浏览器中绘制
3D
图像的
JS
库
。它是基于webgl实现了,包括了webgl1和webgl2的渲染引擎。同时也包括了最新的webgpu。(部分浏览器基本不支持)。
你可以新建一个vue或者react的工程项目,然后在命令行中使用命令
npm i
thre
e
如果是使用typescript进行
开发
的话,需要安装dts定义文件,使用命令
npm i @types/
thre
e
如果你是使用单个html文件进行
开发
的话,就很
简单
了,直接下载
thre
ejs
的
GLTFLoader加载gltf模型,并解析模型动画;
基于worker-loader在vue中使用web worker;
基于web worker动态设置模型(鸟、牛)的移动路线;
基于geotiff.
js
与DEM生成三维地形场景;
thre
ejs
中加载geo
js
on生成ShapeGeometry;
使用BufferGeometryLoader加载风机模型,并设置风机动态转动;
基于DataTexture
3D
生成三维云;
基于Sprites实现树木、草地、向日葵等