从零开始学习ThingJS之创建/销毁物体

1、 加载模型

2、 添加多个数字孪生可视化园区

3、 销毁物体

数字孪生可视化场景初始化后,我们就可以在3D场景内添加物体对象了,可以通过 create() 方法来创建物体,例如,加载模型、添加标记、创建基本形体、添加多个园区等。通过 destroy() 方法,可以销毁物体,即在场景中删除物体。

通过 create() 方法创建物体,并通过对象名称和属性,来添加所创建的物体属性。

var obj = app.create({
 name: value,
})

通过 destroy() 来销毁物体。

obj.destroy();

1、加载模型

将模型对应的url输入到数字孪生可视化场景项目文件中,即可加载模型,模型库中右键单击模型可以直接获取模型url。下面我加载一个厂房来举例。

这里,我通过最后一行代码设置摄像机的位置,来调整预览视角。如果不添加此行代码,则默认状态下摄像头的位置跟所创建的物体一致,也就是说摄像机的镜头贴在物体上,那么,此时我们可以将鼠标滚轮回滚,进行缩放调节,就可以在预览窗口显示出所加载的模型了。

var app = new THING.App(); // 3D场景初始化

app.background = '#F0FFFF'; //设置背景颜色

//创建物体
var obj = app.create({
 type: "Thing",
 name: "厂房",
 position: [-20, 2, 0],
 url: "/api/models/d0fb1dcb52354a7d8a5e19715b2879c2/0/gltf/",
 complete: function() {
 console.log("厂房 created!"); //创建完成后日志窗口显示返回信息
 }
});

app.camera.position = [-35, 5, 10] //设置摄像机位置来调整预览视角

其中,Thing 为模型的类型,厂房为模型的名称。运行项目后,在预览窗口,可以展示出创建的物体,如下图所示。

2、添加多个数字孪生可视化园区

当然,我们也可以用create()方法添加多个数字孪生可视化园区。下面我将 ThingJS 示例园区和我自定义的中式建筑园区添加进来。

var app = new THING.App({
 skyBox: "BlueSky",
}); // 3D场景初始化,设置天空盒

// 添加ThingJS示例园区
var campus1 = app.create({
 type: "Campus",
 url: "models/storehouse",
 complete: function (ev) {
 console.log("Campus created: " + ev.object.id);
 }
});

//添加自定义中式建筑园区
var campus2 = app.create({
 type: "Campus",
 url: "/api/scene/05972f8c68a48a1a0c4a2da8",
 position: [115, 0, 0],
 complete: function (ev) {
 console.log("Campus created: " + ev.object.id);
 }
});

通过 position 属性来设置数字孪生可视化园区的位置。为了使两个园区的位置不重叠,我将中式建筑园区的位置设置为 [115, 0, 0]。

项目运行后,鼠标滚轮回滚控制场景缩放,按鼠标左键移动鼠标调整园区位置后,在预览窗口可查看加载的两个数字孪生可视化园区。

3、销毁物体

在上面的代码的基础上,将下面的代码输入项目文件中,可为数字孪生可视化场景添加销毁物体的按钮。

var button = new THING.widget.Button('销毁物体', function() {
 obj.destroy();
});

运行项目后,在预览窗口,可以显示出创建的按钮,点击按钮,即可销毁物体。

完整代码如下:

var app = new THING.App(); // 3D场景初始化

app.background = '#F0FFFF'; //设置背景颜色

//创建物体
var obj = app.create({
 type: "Thing",
 name: "厂房",
 position: [-20, 2, 0],
 url: "/api/models/d0fb1dcb52354a7d8a5e19715b2879c2/0/gltf/",
 complete: function() {
 console.log("厂房 created!"); //创建完成后日志窗口显示返回信息
 }
});

app.camera.position = [35, 5, 10] //设置摄像机位置来调整预览视角
var button = new THING.widget.Button('销毁物体', function() {
 obj.destroy();
});

另外,还可以通过地图来加载多个数字孪生可视化园区,步骤和上述步骤基本一致,感兴趣的小伙伴可以自己动手试一试~

(0)

相关推荐

  • 电脑上简书的图片加载不出来?

    表白:不好意思,刚我对其他人动了心,因为她,很像你  讲解对象:电脑上简书的图片加载不出来?  作者:融水公子 rsgz 很多网友最近都开始反映简书平台.在电脑上浏览的时候,他的图片总是加载不出来.加 ...

  • 从零开始学习ThingJS之创建App对象

    从零开始学习ThingJS之创建App对象

  • 从零开始学习丰田套路第20讲-套路教练是老师、学员和改进者

    套路教练实际上是多重身份融为一身,首先是教授别人套路方法的老师:其次,要想成为一名优秀的教练,需要比学员学习更多的知识,所以始终要保持学员的心态去学习:最后,引导学员解决阻碍时,会发现有些阻碍的根本原 ...

  • 非得从零开始学习?扒一扒强化学习的致命缺陷

    大数据文摘编译作品 作者:Andrey Kurenkov 编译:Hope.爽爽.茶西.halcyon Deepmind在Alphago上的成就把强化学习这一方法带入了人工智能的主流学习领域,[从零开始 ...

  • 从零开始学习股票知识

    从零开始学习股票知识 第一篇 什么是A股.B股.H股.N股.S股? 我国上市公司的股票有A股.B股.H股.N股和S股等的区分.这一区分主要依据股票的上市地点和所面对的投资者而定. A股的正式名称是人民 ...

  • 从零开始学习丰田套路第21讲-持续改进和科技

    要想成功地实施运营系统或变革,必须聚焦于员工.过程和技术,在套路推进中应用科学技术是非常有益处的.它能帮助管理内容的目视化,促进教练与学员之间的合作,支持标准的执行,跟进改善成果的影响,最重要的是可以 ...

  • 如何激发初中生的学习动力?——创建以学校...

    如何激发初中生的学习动力? --创建以学校学习为主体的学习支撑系统 在我的学习支撑系统里面,首先要解决的是孩子的学习动力问题,其次是孩子在学习的过程当中逐步养成良好的学习习惯. 我们每一个做父母的都希 ...

  • 从零开始学习丰田套路第19讲-教导套路中使用非语言交流的要素

    优秀的套路教练都可以很好地利用非语言交流让学员受益,其关键要素包括脸.眼睛.身体姿态.手势.语调等,通过使用这些要素,可以为学员做好准备,进行强化或纠正,让学员获得成就感,还可以提供指导和动力,促使学 ...

  • 从零开始学习丰田套路第18讲-教导以跨越新的知识门槛

    套路教练一般从教导员工从走看开始,到探索性实验,再到把阻碍范畴缩小到一个因素,以便可以把它克服掉,但这还没到他们知识门槛的边缘,所以教练还要做更深入地教导,让学员从舒适区进入学习区,实现知识门槛的跨越 ...

  • 三朝教务专访:从零开始学习是一种工作态度

    做一个不轻易改变的人,一生为心爱之事奉上全部努力!能坚守自己的心田,保持对生活的热忱,与敬畏让自己仪式感常在,善良常在. ----吴钿淳 吴老师是一个非常有原则的人,也是同事眼里的学习小能手,对自己严 ...