Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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_Edges - Fatal编程技术网

Javascript 如何将边绘制为数组?

Javascript 如何将边绘制为数组?,javascript,three.js,edges,Javascript,Three.js,Edges,我有镶嵌几何体的3d模型(我有顶点和三角形的数组),还有原始非镶嵌几何体的边数组。我找不到任何说明如何显示边数组的教程/示例,Three.js的文档也不完整: // // Cube geometry // // 4+--------+7 // /| /| // 5+--------+6| // | | | | // |0+------|-+3 // |/ |/ // 1+--------+2 // var cube_vertices = [

我有镶嵌几何体的3d模型(我有顶点和三角形的数组),还有原始非镶嵌几何体的边数组。我找不到任何说明如何显示边数组的教程/示例,Three.js的文档也不完整:

//
// Cube geometry
//
//   4+--------+7
//   /|       /|
// 5+--------+6|
//  | |      | |
//  |0+------|-+3
//  |/       |/
// 1+--------+2
//
var cube_vertices = [
    [-1.0, -1.0, -1.0],
    [ 1.0, -1.0, -1.0],
    [ 1.0,  1.0, -1.0],
    [-1.0,  1.0, -1.0],
    [-1.0, -1.0,  1.0],
    [ 1.0, -1.0,  1.0],
    [ 1.0,  1.0,  1.0],
    [-1.0,  1.0,  1.0]
];
var cube_edges = [
    [0, 1],
    [1, 2],
    [2, 3],
    [3, 0],
    [0, 4],
    [1, 5],
    [2, 6],
    [3, 7],
    [4, 5],
    [5, 6],
    [6, 7],
    [7, 0]
];

有人有什么建议吗

仅一个注释,从r72起,有用于显示边缘的和边缘辅助线。

仅一个注释,从r72起,有用于显示边缘的和边缘辅助线。

r75:
THREE.LinePieces
选项已被
THREE.LineSegments
替换

var eGeometry = new THREE.EdgesGeometry( mesh.geometry );
var eMaterial = new THREE.LineBasicMaterial( { color: 0x00ff000, linewidth: 4 } );
var edges = new THREE.LineSegments( eGeometry , eMaterial );
mesh.add( edges );

r75:
THREE.LinePieces
选项已被
THREE.LineSegments
替换

var eGeometry = new THREE.EdgesGeometry( mesh.geometry );
var eMaterial = new THREE.LineBasicMaterial( { color: 0x00ff000, linewidth: 4 } );
var edges = new THREE.LineSegments( eGeometry , eMaterial );
mesh.add( edges );
将解决方案从问题转移到答案

使用三条直线(几何图形、材质)创建直线或多段线时, 然后,您可以使用可选的第三个参数type和类型 是三条线,它完全符合我的要求。更多 可以在Line()文档中找到相关信息。您可以创建许多 具有以下代码的断开线路:

var material = new THREE.LineBasicMaterial({ color: 0x0000ff });
var geometry = new THREE.Geometry();
for(var i = 0; i < cube_edges.length; i++) {
    // Add first vertex of edge
    geometry.vertices.push( new THREE.Vector3(
        cube_vertices[cube_edges[i][0]][0],
        cube_vertices[cube_edges[i][0]][1],
        cube_vertices[cube_edges[i][0]][2]
        )
    );
    // Add second vertex of edge
    geometry.vertices.push( new THREE.Vector3(
        cube_vertices[cube_edges[i][1]][0],
        cube_vertices[cube_edges[i][1]][1],
        cube_vertices[cube_edges[i][1]][2]
        )
    );
}
var line = new THREE.Line( geometry, material, THREE.LinePieces);
scene.add( line );
var material=新的三线基本材质({color:0x0000ff});
var geometry=new THREE.geometry();
对于(变量i=0;i
也许这不是最干净的解决方案,但它确实有效

将解决方案从问题转移到答案

使用三条直线(几何图形、材质)创建直线或多段线时, 然后,您可以使用可选的第三个参数type和类型 是三条线,它完全符合我的要求。更多 可以在Line()文档中找到相关信息。您可以创建许多 具有以下代码的断开线路:

var material = new THREE.LineBasicMaterial({ color: 0x0000ff });
var geometry = new THREE.Geometry();
for(var i = 0; i < cube_edges.length; i++) {
    // Add first vertex of edge
    geometry.vertices.push( new THREE.Vector3(
        cube_vertices[cube_edges[i][0]][0],
        cube_vertices[cube_edges[i][0]][1],
        cube_vertices[cube_edges[i][0]][2]
        )
    );
    // Add second vertex of edge
    geometry.vertices.push( new THREE.Vector3(
        cube_vertices[cube_edges[i][1]][0],
        cube_vertices[cube_edges[i][1]][1],
        cube_vertices[cube_edges[i][1]][2]
        )
    );
}
var line = new THREE.Line( geometry, material, THREE.LinePieces);
scene.add( line );
var material=新的三线基本材质({color:0x0000ff});
var geometry=new THREE.geometry();
对于(变量i=0;i
也许这不是最干净的解决方案,但它确实有效


错误的变量名!更改
var edges=新的三条线段(几何体、材质)
var边=新的三条线段(e度量,e材质)错误的变量名!更改
var edges=新的三条线段(几何体、材质)
var边=新的三条线段(e度量,e材质)