我必须修改用C#编写的WPF应用程序,该应用程序显示具有许多子模型或部件的复杂3D模型。当用户通过备用用户界面机制选择零件时,我想旋转,缩放或移动场景,以便子模型进入视图。没有完全隐藏子模型(即主模型的内部)。
最好的方法是什么?
作为进一步的信息,模型没有真正的顶部或底部。它是分子的3D表示,用户选择需要“滚动到视图”的原子。
答案 0 :(得分:1)
获取子模型的边界体积的中心(或质心)。旋转相机以查看中心。移动或缩放视图,直到子模型边界体积占据屏幕的预定义部分。这涉及求解与观察体积和边界体积相关的简单线性方程。如果您的边界体积是最小边界框,则相当容易。
修改强>
在这种情况下,如果你先进行一些谷歌搜索,你可能会更好。您所谈论的具体功能通常称为'缩放以适合'。如果你做一些谷歌搜索,我相信你会发现一些深入的实施讨论,这将比我在这里做得更好。解释要求您了解屏幕坐标和世界坐标之间的转换以及它们之间的相关性。