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;`