2016-06-21 2 views
0

例: メイン矩形(1)に子矩形(2,3)を追加しました。子ローテーションを保存するThree.js

3つの長方形のように見えます。

parent.add(obj); 

親の矩形の回転(1)を変更すると、その子が祖先と位置と回転(!)を変更します。

img.example

どのように位置を変更したり、回転を保存するには?

+0

の変更、メッシュの先頭に各平面の軸の位置は、その後、あなたは飛行機2飛行機1は、すべてのそれの子を回転させる回転させる必要があり欲しいものを実現しています。 – Erevald

+0

@Vlad http://stackoverflow.com/questions/29586422/three-js-ignore-parents-rotationを参照してください。 http://stackoverflow.com/questions/15734049/invert-rotation-of-parent-in-the-child-so-the-child-appears-unrotated-in-the-wo/15735090#15735090も参照してください。 – WestLangley

答えて

0

オブジェクトを親に子として追加し、親の回転または位置を変更すると、親にのみ影響します。

子要素には値はありませんが、位置と回転は親に向かって計算されます。親の子と親の関係は決してどこにも保存されません。それはあなたが親の親に向かって子の回転を保存することができない理由です。それは存在しないだけです。

親要素がの場合のみに移動する場合は、子の位置または親の方の回転を計算して、どこかに格納できます。各アニメーションフレームでは、この位置と回転を各子に設定する必要があります。 これは実用的ではありません。親シーンへの子の位置を計算するのに

how to: get the global/world position of a child object

が、はるかに優れたアプローチ

がない子ODオブジェクトとして、個別シーンに他の要素を配置することです参照してください。 オブジェクトのグループで何らかの操作を行う必要がある場合は、オブジェクト識別子を外部に保存し、識別子としてオブジェクトを参照として取得します。

scene.getObjectById(4, true); 
関連する問題