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 使用threejs从多段线点创建平面_Javascript_Three.js_3d_Plane - Fatal编程技术网

Javascript 使用threejs从多段线点创建平面

Javascript 使用threejs从多段线点创建平面,javascript,three.js,3d,plane,Javascript,Three.js,3d,Plane,我正在努力实现这样的目标: 我有一条多段线及其点,现在我想创建一张与图中所示相同的图纸。上面是多段线,下面是根据该多段线点创建的图纸 我遵循了这篇文章的解决方案,但当我尝试这一点时,它并没有呈现任何效果 以下是我尝试的代码: let containerThreeJs=document.getElementById('threed-view-container'); 设w=容器三个EJS.offsetWidth; 设h=容器三个。远离视线; let renderer=new THREE.Web

我正在努力实现这样的目标:

我有一条
多段线
及其点,现在我想创建一张与图中所示相同的图纸。上面是多段线,下面是根据该多段线点创建的图纸

我遵循了这篇文章的解决方案,但当我尝试这一点时,它并没有呈现任何效果

以下是我尝试的代码:

let containerThreeJs=document.getElementById('threed-view-container');
设w=容器三个EJS.offsetWidth;
设h=容器三个。远离视线;
let renderer=new THREE.WebGLRenderer({
反别名:对
});
渲染器。设置大小(w,h);
containerThreeJs.appendChild(renderer.doElement);
让场景=新的三个。场景();
让摄像头=新的三个透视摄像头(5,1,1,1000);
摄像机位置设置刻度(300);
设三点=[
[88.5, 370],
[229.5, 268],
[300.5, 333],
[373.5, 290],
[426.5, 392]
];
让几何体=挤出路径(三个点,100);
var材料=新的三网格基本材料({
颜色:0x00ff00,
侧面:三个。双面
});
var mesh=新的三个网格(几何体、材质);
场景。添加(网格);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
render();
函数调整大小(渲染器){
const canvas=renderer.domeElement;
const width=canvas.clientWidth;
常数高度=canvas.clientHeight;
const needResize=canvas.width!==width | | canvas.height!==height;
如果(需要调整大小){
设置大小(宽度、高度、假);
}
返回需要调整大小;
}
函数render(){
如果(调整大小(渲染器)){
camera.aspect=canvas.clientWidth/canvas.clientHeight;
camera.updateProjectMatrix();
}
渲染器。渲染(场景、摄影机);
请求动画帧(渲染);
}
函数挤出路径(点、深度){
var几何=新的三个平面几何(10,10,points.length-1,1);
var顶点=geometry.vertices;
//如果我对该循环进行注释,则该平面可见
对于(变量i=0,l=points.length,p;i

我不确定,但我看到了:在点数组中,三个点,每个点有两个部分。然而,在extrudePath函数中,它寻找的是3。(p[0],p[1],p[2])

看看这个,了解一些想法。
`let threeDpoints = [
    [88.5, 370],
    [229.5, 268],
    [300.5, 333],
    [373.5, 290],
    [426.5, 392]
];
`

`p = points[i];
vertices[i].x = vertices[i + l].x = p[0];
vertices[i].y = vertices[i + l].y = p[1];
vertices[i].z = p[2];
vertices[i + l].z = p[2] + depth;`