2009-05-15 10 views
1

多くのサブモデルやパーツを含む複雑な3Dモデルを表示するC#で書かれたWPFアプリケーションを変更する必要があります。ユーザーが別のユーザーインターフェイスメカニズムを使用してパーツを選択すると、サブモデルが表示されるようにシーンを回転、拡大縮小、または移動したいと思います。サブモデルは完全に隠されていない(すなわち、メインモデルの内部)。サブモデルを3Dシーンでどのように表示するか?

これを行うにはどうすればよいですか?

さらに詳しい情報として、モデルの真のトップまたはボトムはありません。それは分子の3D表現であり、ユーザは「見るためにスクロールする」必要な原子を選択する。

答えて

1

サブモデルの境界ボリュームの中心(またはセントロイド)を取得します。中心を見るためにカメラを回転させます。サブモデル境界ボリュームが画面の所定の部分を占めるようになるまで、ビューを移動またはズームする。これは、視体積と境界体積に関する単純な線形方程式を解くことを含む。バウンディングボリュームが最小境界ボックスであれば、かなり簡単です。あなたには、いくつかの最初のグーグルでない場合は、オフに良いかもしれその場合

EDIT

。あなたが話している特定の機能は、通常と呼ばれ、「ズームインフィット」と呼ばれます。あなたがグーグルグーグルでやっているのであれば、ここで実装できるものよりもはるかに優れている実装の詳細な議論を見つけることができます。この説明では、画面座標と世界座標の間の変換やそれらの関係を理解する必要があります。

+0

Hmmm。おそらく、私は3Dアプリケーション開発に比較的新しいことを述べておきたいと思います。あなたは英語でそれを繰り返すことができますか? :-) – SergioL

関連する問題