将子对象的坐标转换为世界坐标

时间:2013-06-19 15:54:41

标签: three.js

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

我有一个Object3D“组”,它有一些孩子(飞机)。我使用“组”来旋转飞机组,这很好。现在相机可以移动,父对象可以旋转。可以单击平面来选择它们。我现在想要的是让选定的飞机飞入相机。

如果我只是将飞机移动到摄像机位置,它会向任何方向飞行,但大部分都不会飞向摄像机。当然因为“群体”似乎是儿童对象的“世界”。如果我沿着z轴移动平面,则平面沿着父轴的z轴移动。

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

基本上我用three.js演示了famo.us做了什么,只花了大约两个小时左右。我用一个没有分组的附加平面伪造了想要的效果,我可以在没有变换的情况下移动到相机。该演示可在此处获得:

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

如果有人能告诉我如何让这个工作,那会很好。当我能够将附加平面准确地放在选定的平面上时,我仍然可以使用假的。

提前致谢, 基督教

1 个答案:

答案 0 :(得分:3)

THREE.js: Calculate world space position of a point on an object解决了将局部坐标转换为世界坐标的问题。 how to: get the global/world position of a child object可能还会提供帮助信息。