Merge 如何在3J中合并多条有间隙的线

Merge 如何在3J中合并多条有间隙的线,merge,geometry,three.js,line,Merge,Geometry,Three.js,Line,我正在成功加载一个数据集,其中包含表示城市中建筑物的多边形数据。所以每个多边形代表一个建筑。在Threejs中,我可以成功地表示它们,但是当我尝试将单独的线合并到一个几何体中时,所有的线都是连接的(我理解为什么这是有意义的,因为所有的顶点都添加到同一个集合中) 但是,如何将这些单独的建筑多边形合并到单个几何体中,而不使单独的建筑多边形的线相互连接 我现在拥有的代码: var geometry = new THREE.Geometry(); for (var i = 0;

我正在成功加载一个数据集,其中包含表示城市中建筑物的多边形数据。所以每个多边形代表一个建筑。在Threejs中,我可以成功地表示它们,但是当我尝试将单独的线合并到一个几何体中时,所有的线都是连接的(我理解为什么这是有意义的,因为所有的顶点都添加到同一个集合中)

但是,如何将这些单独的建筑多边形合并到单个几何体中,而不使单独的建筑多边形的线相互连接

我现在拥有的代码:

var geometry = new THREE.Geometry();

            for (var i = 0; i < data.length; i++) {
                var temp = new THREE.Geometry();
                var polygon = data[i];
                for (var j = 0; j < polygon.length; j++) {
                    temp.vertices.push(new THREE.Vector3(polygon[j][0], polygon[j][1], 0));
                }
                temp.vertices.push(new THREE.Vector3(polygon[0][0], polygon[0][1], 0));

                THREE.GeometryUtils.merge(geometry, temp);
            }
            scene.add(new THREE.Line(geometry, buildingMaterial, THREE.LineStrip));
var geometry=new THREE.geometry();
对于(变量i=0;i
data是包含建筑物所有多边形数据的变量。

已解决:

            var cube = new THREE.Geometry();

            for (var i = 0; i < data.length; i++) {
                var shape = new THREE.Shape(_.uniq(_.map(data[i], function(d) { return new THREE.Vector3(d[0], d[1], 100); })));
                shape.extrude({amount: 100})
                var points = shape.createPointsGeometry();
                THREE.GeometryUtils.merge(cube, shape.extrude({amount: -1 - Math.random() * 1, bevelSegments: 0, steps: 1 , bevelSegments: 0, bevelSize: 0, bevelThickness: 0}));

            }

            var mesh = new THREE.Mesh(cube, new THREE.MeshBasicMaterial({color: 0x333333, wireframe: false}));
            scene.add(mesh);
var cube=new THREE.Geometry();
对于(变量i=0;i
已解决:

            var cube = new THREE.Geometry();

            for (var i = 0; i < data.length; i++) {
                var shape = new THREE.Shape(_.uniq(_.map(data[i], function(d) { return new THREE.Vector3(d[0], d[1], 100); })));
                shape.extrude({amount: 100})
                var points = shape.createPointsGeometry();
                THREE.GeometryUtils.merge(cube, shape.extrude({amount: -1 - Math.random() * 1, bevelSegments: 0, steps: 1 , bevelSegments: 0, bevelSize: 0, bevelThickness: 0}));

            }

            var mesh = new THREE.Mesh(cube, new THREE.MeshBasicMaterial({color: 0x333333, wireframe: false}));
            scene.add(mesh);
var cube=new THREE.Geometry();
对于(变量i=0;i
我还没有弄明白,但我认为我应该用形状而不是线条。形状确实很有用,但我无法将其合并到一个几何体中。我还没有弄明白,但我认为我应该用形状而不是线条。形状确实很有用,但我还没能把它合并成一个几何体。如果你解决了你的问题,你应该接受你自己的答案:)我会的,但这只有在我发布答案15小时后才可能。可能是为了避免错误的答案。如果你解决了你的问题,你应该接受你自己的答案:)我会的,但这只有在我发布答案15小时后才可能。可能是为了避免错误的解决方案。