Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 分组的Object3D几何体中顶点的世界位置_Javascript_Three.js - Fatal编程技术网

Javascript 分组的Object3D几何体中顶点的世界位置

Javascript 分组的Object3D几何体中顶点的世界位置,javascript,three.js,Javascript,Three.js,到目前为止,我已经花了7个小时尝试了这里已经找到的答案中的每一个组合: 我试图找到一个平面几何体的顶点位置,它在Object3D中,它在一个组中 我可以毫无疑问地获得Object3D的全局坐标,即使在组或Object3D四处移动时也是如此,但顶点要么只给我它们的局部坐标,要么给我与它们的位置不相关的垃圾编号,或者没有定义,或者告诉我它找不到这个或那个东西 任何帮助都将不胜感激。您可以在Object3D上使用某种快捷方式-localToWorld()。您必须确保矩阵已更新,这通常在渲染时自动发生。

到目前为止,我已经花了7个小时尝试了这里已经找到的答案中的每一个组合:

我试图找到一个平面几何体的顶点位置,它在Object3D中,它在一个组中

我可以毫无疑问地获得Object3D的全局坐标,即使在组或Object3D四处移动时也是如此,但顶点要么只给我它们的局部坐标,要么给我与它们的位置不相关的垃圾编号,或者没有定义,或者告诉我它找不到这个或那个东西


任何帮助都将不胜感激。

您可以在
Object3D
上使用某种快捷方式-
localToWorld()
。您必须确保矩阵已更新,这通常在渲染时自动发生。为了安全起见,请复制
矢量3

yourObject3d.updateMatrixWorld()
yourObject3d.localToWorld( new THREE.Vector3().copy(yourGeometry.vertices[someVertex]) )

虽然这个代码片段可能是解决方案,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。OMG!非常感谢。这成功了!我觉得我用我能想到的任何方式键入了这种类型的东西,除了我不知道这样做,我仍然不明白为什么我的其他尝试不起作用,这些尝试都是在.localToWorld()之外声明的变量,然后添加到它中,当这样工作时。可能是
copy()
成功了。如果你没有太多的three.js经验,很容易变异出错误的东西!你说得对!我在几次尝试中使用了clone(),因为同一个问题的其他答案是“生活与学习!”!然而,这可能会扼杀javascripts垃圾收集,以便更好地进行测试和开发,避免在安全方面出错