Javascript 三.js“;“爆炸”;一个预先定义好的对象

Javascript 三.js“;“爆炸”;一个预先定义好的对象,javascript,three.js,position,Javascript,Three.js,Position,这是我最后一个问题的后续问题。我想分解(技术绘图样式)一个导入的.obj几何体,其中包含n.obj零件 例如,一个表作为对象,每个部分是一个.obj、四条腿和一个桌面。 5个文件。加载它们没有问题。现在每个对象的位置都是0,0,0,这意味着我需要得到它们的世界位置,我使用这个函数: function absPos( myMesh ) { myMesh.geometry.computeBoundingBox(); var boundingBox = myMe

这是我最后一个问题的后续问题。我想分解(技术绘图样式)一个导入的.obj几何体,其中包含n.obj零件

例如,一个表作为对象,每个部分是一个.obj、四条腿和一个桌面。 5个文件。加载它们没有问题。现在每个对象的位置都是0,0,0,这意味着我需要得到它们的世界位置,我使用这个函数:

    function absPos( myMesh ) {    
      myMesh.geometry.computeBoundingBox();
      var boundingBox = myMesh.geometry.boundingBox;   
      var position = new THREE.Vector3();
      position.subVectors( boundingBox.max, boundingBox.min );
      position.multiplyScalar( 0.5 );
      position.add( boundingBox.min );    
      position.applyMatrix4( myMesh.matrixWorld );    
      var abspos = {x:position.x,y:position.y,z:position.z};
      return abspos;      
    }
现在我确实假设将对象的位置设置为它们的世界位置恰好会将它们移动到另一个世界位置,但保持它们的关系,但事实并非如此。所以我不能只用物体的世界位置来平移物体,直到我弄乱了世界位置

由于对象的位置是0,0,0,它们彼此之间没有关系,我不能仅仅乘以这些值来“分解”几何体


有没有可能在不影响世界位置的情况下实现这一点?

如果不使用
absPos(…)
,那么所谓的表的各个部分将如何在场景中定位?该代码只是显示我用于获取绝对位置的数据。在开始时,表元素的位置在.obj文件中定义,因此我不翻译任何内容。然而,正如您可能知道的那样,obj.position.x/y/z只返回0,0,0。它没有给我任何关于腿/桌面应该“爆炸”的方向的信息,但它确实给了我将表格元素放置在某处的选项。现在,我可以使用absPos得到的世界位置来确定位置是负的还是正的,只需向object.position添加一个正值或负值来替换元素。好的,它甚至可以用作乘法器。它没有我想要的那么完美,但我想我可以通过一些更正来作弊。如果你不使用
absPos(…)
,那么所谓的表的一部分将如何在场景中定位?该代码只是显示我用来获得绝对位置的数据。在开始时,表元素的位置在.obj文件中定义,因此我不翻译任何内容。然而,正如您可能知道的那样,obj.position.x/y/z只返回0,0,0。它没有给我任何关于腿/桌面应该“爆炸”的方向的信息,但它确实给了我将表格元素放置在某处的选项。现在,我可以使用absPos得到的世界位置来确定位置是负的还是正的,只需向object.position添加一个正值或负值来替换元素。好的,它甚至可以用作乘法器。它并没有我想要的那么完美,但我想我可以通过一些修正来作弊。