three.js创建简单的3D机房(1) 创建机柜模型-2

three.js创建简单的3D机房(1) 创建机柜模型-2/****创建机柜门接上一篇*/letrearGeometryDoor=newTHREE.BoxGeometry(basicParameters.thickness,this.cabinetObj.h,this.cabinetObj.w+basicParameters.thickness*2);letmaterialsbgDoor=[];for(leti=0;i<rearGeometryDoor.faces.length/2;i+=1)

/**

*

*创建机柜门 接上一篇

*/

let rearGeometryDoor = new THREE.BoxGeometry(basicParameters.thickness, this.cabinetObj.h,this.cabinetObj.w+basicParameters.thickness*2);

let materialsbgDoor = [];

for (let i = 0; i < rearGeometryDoor.faces.length / 2; i += 1) {

let material

if(i===1){

material = this.cabinetbgMaterial.doorBan[0];

}else if(i===0){

material = this.cabinetbgMaterial.doorBan[1];

}else{

material = this.cabinetbgMaterial.doorBan[2];

}

materialsbgDoor[i] = material

}

// rearGeometryDoor.translate(this.cabinetObj.w/2,0,0)

let door = new THREE.Mesh(rearGeometryDoor,materialsbgDoor);

let doorZ = this.position.z<0?this.position.z – this.cabinetObj.w/2 – this.cabinetObj.z/2: this.position.z + this.cabinetObj.w/2 + this.cabinetObj.z/2

let doorOption = {x:riserR.position.x-basicParameters.thickness/2,y:this.position.y,z:doorZ}

door.name=’door’;

door.closeTag= this.options.closeTag;

if(door.closeTag === ‘open’){

door.position.set(doorOption.x+basicParameters.thickness/2,doorOption.y,doorOption.z)

}else{

door.rotateY(-1.57)

door.position.set(doorOption.x – this.options.cabinetObj.w/2,doorOption.y,doorOption.z – this.options.cabinetObj.w/2+basicParameters.thickness/2)

}

cabGroup.add(door);

 

// 整个机柜的位置及旋转

cabGroup.name = ‘cabGroup’;

cabGroup.cabId = this.cabId;

cabGroup.position.set(this.cabPosition.x,this.cabPosition.y,this.cabPosition.z)

cabGroup.rotateX(this.cabPosition.rotatex)

cabGroup.rotateY(this.cabPosition.rotatey)

cabGroup.rotateZ(this.cabPosition.rotatez)

for (let i = 0; i < cabGroup.children.length; i++) {

cabGroup.children[i].cabId = this.cabId;

cabGroup.children[i].cabName = ‘cab’;

cabGroup.children[i].cabSlot = this.cabSlot;

cabGroup.children[i].status = this.status;

}

this.scene.add(cabGroup)

}

}

export default cabinet;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209931.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 挑战10个最难回答的Java面试题(附答案)

    译者:Yujiaaosegmentfault.com/a/1190000019962661推荐阅读(点击即可跳转阅读)1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.Mybatis内容聚合5.多线程内容聚合这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。…

    2022年4月14日
  • java判断回文字符串几种简单的实现

    java判断回文字符串几种简单的实现java判断回文字符串几种简单的实现

    2022年5月3日
  • 以《简单易懂》的语言带你搞懂逻辑回归算法【附Python代码详解】机器学习系列之逻辑回归篇

    以《简单易懂》的语言带你搞懂逻辑回归算法【附Python代码详解】机器学习系列之逻辑回归篇目录必看前言逻辑回归算法1概述2基本原理3sklearn实现3.1导入数据(乳腺癌数据集)3.2建模3.3绘制学习曲线3.4网格搜索-确定最优参数结束语必看前言这一篇文章,我会详细从机器学习的角度介绍逻辑回归,以及如何利用Python来实现逻辑回归以及逻辑回归的实战模拟,另外我也会教大家如何利用网格搜索找到最优参数。干货满满!逻辑回归算法1概述分类技术是机器学习和数据挖掘应用中的重要组成部分。在数据科学中,绝大多数的问题属于分类问题。解决分类的算法也有很多种。如:KNN,使距

    2022年8月21日
  • Pycharm中安装Pygame方法「建议收藏」

    Pycharm中安装Pygame方法「建议收藏」本文转自:https://blog.csdn.net/zhangffyy/article/details/78524592第一步:打开Pycharm第二步:点File-&amp;amp;amp;gt;DefaultSettings-&amp;amp;amp;gt;ProjectInterpreter-&amp;amp;amp;gt;点加号第三步:搜索Pygame-&amp;amp;amp;gt;InstallPackage然后就安装好了,新建一个p

    2022年8月29日
  • 如何在mac上录屏(并且录制到屏幕内部声音)完美解决方案

    如何在mac上录屏(并且录制到屏幕内部声音)完美解决方案文章目录前言一、quicktimeplayer+Soundflower方案解决quicktimeplayer不能录制系统声音的缺陷在quicktimeplayer选择刚配置的音频二、iShot+Soundflower方案总结前言一直想找一款在mac录屏的软件,直到今天才有了完美的解决方案,总所周知,mac上有自带的录屏软件(quicktimeplayer),这款软件简单,但是因为其不能录制屏幕内部的声音而不被新手使用。而其他录屏软件大部分需要付款,大部分开源的也不能录制屏幕内部的声音。接下来

    2022年6月12日
  • IntelliJ IDEA 可以使用中文了「建议收藏」

    IntelliJ IDEA 可以使用中文了「建议收藏」1.前言今天IntelliJIdea2020.1正式发布了!最大的一个亮点莫过于开始支持中文了。相信很多英语不好的同学已经期盼已久了。但是感觉登录界面感觉变丑了!建议把文章看完再去升级。2.汉化体验先来看看我的效果,首先要告诉你这是官方汉化包,并不是第三方!我大致看了一圈,个别还没有汉化完毕,可能没有找到合适的描述词汇吧,但是绝大部分已经完成了。这下很多同学可以更方便使…

    2022年6月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号