三个顶点的表面覆盖.js

时间:2015-03-30 17:56:15

标签: three.js visualization data-visualization

我正在为3D数据点创建表面可视化。我可以用球体在空间中绘制数据点。现在我要创建一个表面封面。这是jsfiddle:

https://jsfiddle.net/dnprock/b9xyfno5/10/

我尝试了三角测量,但它没有产生我想要的表面:

triangles = THREE.Shape.Utils.triangulateShape(vertices,holes);

for( var i = 0; i < triangles.length; i++ ){
    geometry.faces.push( new THREE.Face3( triangles[i][0], triangles[i][1], triangles[i][2] ));
}

生成表面以覆盖点的方法是什么?

1 个答案:

答案 0 :(得分:0)

face3获取已经在geometry.vertices 中的三个顶点的索引并生成一个面。在这里,您似乎正在尝试使用原始顶点坐标创建面,而不将它们包含在网格的几何体中。 假设三角形[i]是三个Vector3对象的数组:

for( var i = 0; i < triangles.length; i++ ){
    var first_vertex_index= geometry.vertices.push(triangles[i][0])
    var second_vertex_index= geometry.vertices.push(triangles[i][1])
    var third_vertex_index= geometry.vertices.push(triangles[i][2]) 
    geometry.faces.push( new THREE.Face3( first_vertex_index, second_vertex_index, third_vertex_index ));
}

如你所知,push方法返回数组中推送对象的索引,我们将索引放在Face3中而不是坐标。