ThreeJs模拟工厂生产过程四

简介: 这篇文章详细说明了如何在Three.js中为模拟的工厂产线添加警戒线,以增强产线模型的真实感和安全性表现,通过使用`PlaneGeometry`来创建并定位这些警戒线。

上节解决了模型多会存在的模型卡顿问题,用了模型整合来结局,这节继续这个模型的完善,很多时候可以在产线看到地上会画警戒线,防止工作人员越界以被机器伤到,所以会在机器的危险区域用警戒线框起来,那么这节做绘制警戒线的功能。

首先我们需要先针对一个产线做警戒线,然后再加到循环中给五个产线都加上警戒线。加警戒线我们使用PlaneGeometry对象,这是一个专门绘制2维的对象,他的属性如下

//平面的宽度(width)和高度(height),以及宽度分段数(widthSegments)和高度分段数(heightSegments)

new THREE.PlaneGeometry(width, height, widthSegments, heightSegments);

上面的分段数属性并不是吧这个线段分成多少段,而是指里面组成的三角形数量,你可以理解为分段数越多这个形状绘制的越丝滑,但是对性能的消耗也越多。下面我们绘制一条警戒线,一条产线的警戒线有四条,分别上下左右,我们先绘制上下部分


      //创建警戒线的贴图
      let LineMat = new THREE.MeshLambertMaterial();
      new THREE.TextureLoader().load( "/static/images/line.png", function( map ) {
        LineMat.map = map;
        LineMat.needsUpdate = true;
      } );
      //绘制一条横着的警戒线
      let geometryTop = new THREE.PlaneGeometry( width, length );
      let objTop = new THREE.Mesh( geometryTop, LineMat );
      objTop.position.set(x,y,z);
      this.scene.add( objTop );
      //绘制一条横着的警戒线
      let objBottom = objTop.clone()
      objBottom.position.set(x+lineLength,y,z);
      this.scene.add( objBottom );

因为上下的警戒线是相同的,所以这里绘制好顶部的警戒线,下面的直接clone一下,再改个位置就好了,贴图我找了一个黄色的图片,作为纹理贴图,这样我认为效果会好点。

下面绘制左右两侧的,左右两侧的也是相同的长度和宽度,所以也采用clone的方式做出另外一条,但是左右两侧的位置要向y正方向和负方向各偏移半个宽度。代码如下:

 let lineLength = this.conveyor.lang + 10;//加长一点警戒线的长度保证完全把产线包含在内
//绘制一条横着的警戒线
      let objBottom = objTop.clone()
      objBottom.position.set(x+lineLength,y,z);
      this.scene.add( objBottom );
      //绘制两条竖着的警戒线
      let geometry1 = new THREE.PlaneGeometry( width, lineLength ,2,5);
      let obj1 = new THREE.Mesh( geometry1, LineMat );
      obj1.rotation.z = -Math.PI / 2.0;
      obj1.position.set(x+lineLength/2,y+length/2-1,z);
      this.scene.add( obj1 );
      //因为左右两侧的警戒线只是在位置上有区别,所以可以clone一条出来修改位置就好了
      let obj2 = obj1.clone();
      obj2.position.set(x+lineLength/2,y-length/2+1,z);
      this.scene.add( obj2 );

这样就绘制出一个警戒线长方体把产线框在里面了,下面就只需要把它加到循环里,给所有的产线都加上警戒线就好了

 initMachine(){ // 初始哈设备
      for (let i = 0; i < 5; i++) {
        for (let i = 0; i < this.machineList.length; i++) {
          let geometry = new THREE.BoxGeometry(15,15,20);//创建一个几何体
          let material = new THREE.MeshBasicMaterial({color:'#CCCCCC'});//创建材质
          let box = new THREE.Mesh(geometry, material);//创建网格模型
          box.position.set(this.begin.x+20+35*i,this.begin.y,this.begin.z)
          this.initMachineName(this.begin.x+20+35*i,this.begin.y,10,this.machineList[i])
          this.initConveyor(this.begin.x+(this.conveyor.lang/2),this.begin.y,this.begin.z,6,this.conveyor.lang);//前三个参数是xyz,后面两个一个是传送带宽度,一个是传送带长度
          this.scene.add(box);//添加到场景中
          this.addPlane(this.begin.x-5,this.begin.y,this.begin.z-9,2,30);//添加警戒线
        }
        this.begin.y = this.begin.y +60
      }
    },

效果如下:

这样所有的警戒线都加好了,车间也更完善了一点,好了警戒线的添加方法就到这里,如果需要添加其他的警戒线也是用类似的方法就好了

相关文章
|
1月前
ThreeJs模拟工厂生产过程六
这篇文章详细介绍了如何在Three.js中模拟工厂生产过程的第六部分,重点是创建和实现车间内线边仓货架的三维模型及其布局。
25 1
ThreeJs模拟工厂生产过程六
|
1月前
|
UED
ThreeJs模拟工厂生产过程三
这篇文章介绍了在Three.js中通过使用mergeGeometries技术来合并大量车间模型,以减少浏览器渲染负担,提高性能,并提供了实现模型合并的具体方法和步骤。
39 5
|
1月前
ThreeJs模拟工厂生产过程二
这篇文章详细介绍了如何使用Three.js创建一个模拟工厂车间的3D模型,包括绘制地面和墙面的具体步骤,并特别关注于如何创建带有门的墙面以增加车间的真实性。
57 5
|
1月前
ThreeJs模拟工厂生产过程一
这篇文章详细介绍了如何使用Three.js模拟工厂生产过程的第一部分,包括创建传送带、生产设备和产品的模型,并实现产品沿传送带移动的动画效果。
42 5
|
1月前
ThreeJs模拟工厂生产过程七
这篇文章详细介绍了如何在Three.js中为工厂车间的货架动态生成并放置货物,通过循环逻辑和贴图应用使货架上的物品更加逼真,增强了场景的真实感。
22 0
|
1月前
|
程序员 图形学
ThreeJs模拟工厂生产过程五
这篇文章详细介绍了如何在Three.js中模拟工业生产过程的第五部分,重点在于添加并实现车间内人物的动态行走动画,使人能够在车间内来回移动,增加了场景的真实感。
47 0
|
1月前
|
JavaScript
ThreeJs模拟工厂生产过程八
这篇文章详细介绍了如何在Three.js中模拟工厂生产过程的第八部分,重点是优化场景中的模型,包括合并货架上的料箱以减少渲染负担,并替换设备模型以增强场景的真实性和互动性。
38 0
|
数据可视化 物联网
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
928 15
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
|
编解码 开发工具
lachesis辅助组装流程
准备工作: 准备数据 参考基因组:Ler-1.allpaths_lg.final.assembly.fasta HiC数据:data_1.fastq.gz data_2.fastq.gz 安装所需软件并软连接到~/.local下。
2381 0
|
数据采集 存储 监控
全自动配料包装生产线
自动化称重配料控制系统,又称自动配料生产线系统。通常是由自动配料电气控制系统和受控制的给料装置(设备)、监控系统所组成。与人工配料相比它不仅能够在生产中节省大量的劳动成本、劳动强度、减少环境对人体的危害,还可以提高终端产品的稳定性、精确度、效率。为生产企业带来巨大的效益。自动配料生产线系统广泛应用于水泥、钢铁、玻璃、煤矿、制药、饲料、建材、塑胶、橡胶、复合肥、制砖、食品等众多行业。
394 14