Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 长方体几何体侧面_Javascript_Three.js - Fatal编程技术网

Javascript 长方体几何体侧面

Javascript 长方体几何体侧面,javascript,three.js,Javascript,Three.js,我已经在这里问了一个问题: 核心问题解决了,但我遇到了另一个问题。 在我的墙壁被设置在侧面之前:三个。背面,这样当它们面对相机时就不会显示出来,但是现在它们的厚度不再起作用了,我真的不明白为什么 之前: 之后: 如何使厚墙的行为类似于平面墙 控制墙可见性的一个非常粗略的概念(我稍微改变了几何体的平移和定位): var scene=new THREE.scene(); var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);

我已经在这里问了一个问题:

核心问题解决了,但我遇到了另一个问题。 在我的墙壁被设置在侧面之前:三个。背面,这样当它们面对相机时就不会显示出来,但是现在它们的厚度不再起作用了,我真的不明白为什么

之前:

之后:


如何使厚墙的行为类似于平面墙

控制墙可见性的一个非常粗略的概念(我稍微改变了几何体的平移和定位):

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,5,5);
摄像机。注视(场景。位置);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
添加(新的三个.GridHelper(10,10));
变量点=[
新的三矢量3(-2,0,2),
新三矢量3(2,0,2),
新的三矢量3(2,0,-2),
新三矢量3(-2,0,-2)
]
var墙壁=[];
积分。forEach((p,idx,points)=>{
设nextix=idx==points.length-1?0:idx+1;
建筑墙(p,点[nextix],2,0.1);
});
功能建筑墙(点起点、点终点、高度、厚度){
var boxW=pointEnd.clone().sub(pointStart.length();
var-boxH=高度;
var-boxD=厚度;
var-boxGeometry=新的三个.boxGeometry(boxW、boxH、boxD);
boxGeometry.translate(0,boxH*0.5,0);
boxGeometry.rotateY(-Math.PI*0.5);
var wall=新的三点网格(boxGeometry,新的三点网格BasicMaterial({
颜色:“浅绿色”,
线框:正确
}));
墙。位置。复制(点开始)。添加(点结束)。多重刻度(0.5);
观察(点端);
场景。添加(墙);
推(墙);
}
var currentPosition=new THREE.Vector3();
render();
函数render(){
请求动画帧(渲染);
墙。forEach(w=>{
w、 可见=currentPosition.copy(w.position).sub(camera.position).lengthSq()>camera.position.lengthSq();
})
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}


@engno只是出于好奇,它有用吗?很抱歉,我忘了将它标记为已解决。这很有帮助。再次感谢:)啊,我知道你是那个试图帮助我解决另一个问题的人。如果你也能解决这个问题,我将永远欠你的债me@EnginO我会记住:D