[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00516] Re: [Q]Transfom3Dの順番



    / 免疫機能研究会の3月のお知らせ                             /
   /   ■ アガリクス活性化多糖体による免疫療法体験談 8編   /
  /   ■ 「免疫機能研究」ニューズレター       7編   /
 /             --------------------------                      /
/ こちらで掲載中です。--->> http://www.meneki.com/           /
--------------------------------------------------------------

>myTransformGroup.addChild(t1);
>myTransformGroup.addChild(t2);
>myTransformGroup.addChild(t3);
>myTransformGroup(visualObject);

上記のようにぜんぶ myTransformGroup にaddChild()する場合、
下記のような構造になると思います。

myTransformGroup (T)
                 /|\\
                / | \ \
               /  |  \  \
             (T) (T) (T)  <S> visualObject
              t1 t2  t3 

もしこういう構造なら、
t1、t2、t3 への変換は、visualObject には作用しません。

>とした場合に、変換行列は
>t1*t2*t3*visualObject
>という順番で作用するのか、
>それとも
>t3*t2*t1*visualObject
>という順番になるのか。。。。
>
>多分Graphを考えると最初の順番だと思うのですが、今一つ確信がつかめません。
>どうも情けない質問ですがお願いいたします。。。

この場合の visualObect ですが、
直上のTransformGroupによる変換がまず適用されるはずです。

 t3.addChild(visualObject);
 t2.addChild(t3);
 t1.addChild(t2);
 myTransformGroup.addChild(t1);

このようなコードを書くと、下記のうような構造になります。

(T) myTransformGroup
 |
(T) t1
 |
(T) t2
 |
(T) t3
 |
<S> visaulObject

このとき、t3にスケーリング、t2に回転、t1に移動を適用したとします。

まず visualObject は t3 だけスケーリングされ、t2 だけ回転し、
t1 だけ移動するはずです。
(表示されるときは同時ですが)
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)