three.js - 将子对象的坐标转换为世界坐标

标签 three.js

我对 Three.js 还很陌生,显然对坐标系缺乏一些基本的了解。

我有一个 Object3D“组”,其中有一些子项(平面)。我使用“group”来旋转飞机组,效果很好。现在相机可以移动并且父对象可以旋转。人们可以单击飞机来选择它们。我现在想要的是让选定的飞机飞进相机。

如果我只是将飞机移动到相机位置,它就会向任何方向飞行,但大多数情况下不会飞向相机。当然是因为“组”似乎是子对象的“世界”。如果我沿 z 轴移动平面,则该平面将沿父级的 z 轴移动。

我不明白需要采用(或变换)哪些坐标来移动绑定(bind)到相机前面“组”的平面。

基本上我用 Three.js 演示了 famo.us 所做的事情,只花了大约两个小时左右。我用一个未分组的附加平面伪造了想要的效果,我可以将其移动到相机而不进行转换。该演示可在此处获取:

http://hwg.rattat.net/famo.html .

如果有人能告诉我如何让它工作,那就太好了。当我能够将额外的平面精确地放置在所选平面上时,我仍然可以忍受假的。

提前致谢, 克里斯蒂安

最佳答案

将本地坐标转换为世界坐标的问题已在 THREE.js: Calculate world space position of a point on an object 中得到解决。 。也可能有帮助信息:how to: get the global/world position of a child object .

关于three.js - 将子对象的坐标转换为世界坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195810/

相关文章:

javascript - 向 BufferGeometry 添加索引不起作用?

javascript - three.js:纹理全黑

javascript - A帧图像亮度

three.js - 如何轨道/缩放相机以进行贴花/光线转换?

javascript - 使用 THREEJS,我试图在场景中切换雾

three.js - 如何在三个js中的自定义着色器上创建带有镜面反射贴图的镜面反射?

javascript - Three.js 动态片段着色器 GUI

three.js - GLSL片段着色器: control color by time passed

javascript - Threejs 2000 纹理瓶颈

colors - MeshBasicMaterial 颜色色调纹理贴图 Three.js