Three.js将两个对象连接为一个

时间:2014-11-08 10:32:40

标签: javascript three.js

我做了这个函数,对于几何体的每个顶点创建一个球体并将其放置在vertice的相同位置。例如,如果我有一个立方体,该函数为每个立方体顶点放置一个球体。

function makeSphereVertices(){
console.log("makesphere");

spheres = [];

for(var j=0 ; j<geometryContainer.length ; j++) {               
for (var i=0 ; i<geometryContainer[j].geometry.vertices.length ; i++){
var sphereGeometry = new THREE.SphereGeometry(0.04,10,10);//relative to dimension object : ToDo
var sphereMaterial = new THREE.MeshBasicMaterial({transparent: false,color: 0x000000 /*opacity: 0.01*/});
spheres = new THREE.Mesh(sphereGeometry,sphereMaterial);
spheres.position.set(geometryContainer[j].geometry.vertices[i].x,
                  geometryContainer[j].geometry.vertices[i].y,
                  geometryContainer[j].geometry.vertices[i].z);
                  console.log(geometryContainer[j].id);
    spheres.name = "sphere";            
scene.add(spheres);
verticesSphere.push(spheres);

 }
    }


  }

在此之后,我创建了一个移动我的多维数据集的函数Draggable shape。现在的问题是:我找不到将立方体和所有球体一起移动的方法。例如,如果我拖动立方体,则所有球体都保持在旧位置。有没有办法将球体链接到我的立方体?谢谢。

1 个答案:

答案 0 :(得分:1)

将它们全部放在一个新对象中。

group = new THREE.Object3D();//create an empty container
group.add( mesh );//add a mesh with geometry to it
scene.add( group );//when done, add the group to the scene

three.js - mesh group example? (THREE.Object3D() advanced)

因此,请确保将多维数据集和所有球体放在新创建的组对象中。