【JMF】Java Media AP ..
[2ch|▼Menu]
95:デフォルトの名無しさん
09/04/11 12:22:02
>>94
そうしない方法があるんですか?

例えば、天体シミュレーションのケースを考えましょう。
地球のまわりを月が回るだけの簡単なプログラムですが、
プレゼンテーションとしては
earth = [x, y, z]
moon = [x, y, z]
という座標が考えられます。
これを元に差分演算を行い、位置をどんどん変化させていきます。
これを描画する場合、
JPanelを継承した天体ビューアでは、
このモデルを引数として初期化する時にシーングラフを生成します。
この時、それぞれの天体を描画するためにSpheare < Primitiveを使うこととします。
微小時間後にプレゼンテーションモデルの位置が変わります。
この時ビューアの方に変更の通知が入り再描画になります。
再描画の方法としては、またオブジェクトを生成してシーングラフをリコンパイルするしかありません。
Java3Dはシーングラフの変更については描画結果とバインドしてくれているので、
シーングラフを動的に書き換えればそれが描画結果に反映されますが、
シーングラフを書く元となったデータとは分離されています。
これと同じケースはSwingでも言えると思います。
データを描画する際には常に全部再描画、通常、全Shapeオブジェクトの再生成です。

全生成というのは、シーングラフのUniverseなどを再生成するという意味ではなく、
上記の例でいえば、天体を表すオブジェクトを生成して、BranchGroupに動的につなげ直す必要があるということです。
再生成は避けられないと思います。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5496日前に更新/56 KB
担当:undef