Graphics 三轴扭曲网格
嗨,我正试图画一个三合一的模型。Graphics 三轴扭曲网格,graphics,three.js,mesh,Graphics,Three.js,Mesh,嗨,我正试图画一个三合一的模型。 我试着用线条画它,结果是 使用网格绘制它会导致 我用网格绘制它的方法是 let vertices = []; for (let part of this.BUILDINGINFORMATION) { for (let point of part.Polyhedron.Points) { vertices.push(point); } } let holes = []; let triangles, mesh; this.GEOMETRY= new
我试着用线条画它,结果是 使用网格绘制它会导致 我用网格绘制它的方法是
let vertices = [];
for (let part of this.BUILDINGINFORMATION) {
for (let point of part.Polyhedron.Points) {
vertices.push(point);
}
}
let holes = [];
let triangles, mesh;
this.GEOMETRY= new THREE.Geometry();
this.GEOMETRY.vertices = vertices;
triangles = new THREE.ShapeUtils.triangulateShape(vertices, holes);
for (let i = 0; i < triangles.length; i++) {
this.GEOMETRY.faces.push(new THREE.Face3(triangles[i][0], triangles[i][1], triangles[i][2]));
}
let material = new THREE.MeshBasicMaterial();
let mesh = new THREE.Mesh(this.GEOMETRY, material);
让顶点=[];
为了(让我们分享一下这个。BUILDINGINFORMATION){
对于(零件的let点。多面体。点){
顶点。推(点);
}
}
让孔=[];
让三角形,网格;
this.GEOMETRY=新的三个.GEOMETRY();
this.GEOMETRY.vertices=顶点;
三角形=新的三个.ShapeUtils.triangulateShape(顶点、孔);
for(设i=0;i
作为免责声明,我没有任何使用threeJS或一般JS的经验
首先,不应将所有零件的所有顶点合并到一个顶点数组中。
为每个零件,甚至每个多面体制作单独的阵列
尽管如此,从文档来看,ShapeUtils.triangulateShape似乎只适用于二维点集合。如果我正确地解释了你的第一张图片,你的点实际上是3D的。
此线程可能会为您提供一些如何将每个面减少为2D的想法
但是,您是否尝试将点直接作为面推送,为每个零件创建网格 谢谢你的回答!我获取数据的方式是,例如,有一堵墙,我获取它的所有顶点。问题是我没有关于元素的形状的信息,因此我无法在不假定其形状的情况下安全地将顶点指定给面。我发现的一个解决方法是创建一个凸面外壳并通过它获得面,但我不知道如何做到这一点