[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:02034] Re: Transform3D.rotX() について
------------------------- infoseek ML Sponsor --------------------------
■■■■■■■■ キャッシングならキャッシュワン ■■■■■■■■■
┏━━┓┏1.入会金・年会費・ATM手数料一切不要!━━━━━━━━┓
<特徴>┃2.実質年率15.0〜18.0% 1万円からのキャッシング ┃
┗━━┛┗3.【今なら5万円商品券も当る!10月1日〜11月30日まで 】━┛
東京三菱キャッシュワン ⇒ http://www.p-advg.com/?bid=11321
------------------------------------------------------------------------
えんどうです。
私も何かを誤解しているのかも知れませんが...
> SU
> |
> TG1 : T3D1をセット
> |
> TG2 : T3D2 をセット
> |
> S3D
> となっているとします。
>
> ここでT3D2.rotX()を実行した場合、
> TG1のローカル座標系におけるX軸回りに
> 回転する(公転するイメージ)と理解しているのですが、
> これでよろしいのでしょうか?
いえ、TG2 のローカル座標だと思います。
> さらにこの本ではT3DのmulメソッドによってT3Dが合成される際に
> 処理が実行される順番として、たとえばT3D1.mul(T3D2)の場合、
> T3D1→T3D2の順番で実行されると解説してあります。
> (同p.113下)
これは TransformGroup がひとつで、
そこに合成行列(Transfom3Dどうしの合成)を適用する場合でしょうか?
上図では TG1 と TG2 が親子関係になっているので、
それぞれに別個に適用されている変換操作は「結果として」合成されますが、
実際に mul() が行われるわけではない、と私は理解していました。
(Java 3Dのソースを見たわけではありませんが、
PushMatrix/PopMatrix で実現しているのではないか、と推測していました)
> Java3DAPIおよびこのメーリングリストの過去ログを調べると
> T3D1.mul(T3D2)はT3D1×T3D2マトリックスを生成し、
> 実行順序はT3D2→T3D1だと思っておりました。
「実行順序」というのは行列乗算の左辺から右辺へ、
という意味でしょうか?
さて、ひとつの TransfomGroup に対して合成行列を作用させる場合は
乗算の順序に留意しなければなりませんが、
親子関係にある複数の TransformGroup の場合は
上位→下位という影響関係だけ考えれば良い、
と思うのですがどうでしょう。
でないとシーングラフを使うメリットがないです。
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.javaopen.org/yasuyuki/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)
------------------------------------------------------------------------
★豪華賞品が呼んでいるぅ〜。『あなたのプロバイダーはなぁ〜にぃ〜?』
http://ap.infoseek.co.jp/navi.html