代码之家  ›  专栏  ›  技术社区  ›  SergioL

如何在三维场景中显示子模型?

  •  1
  • SergioL  · 技术社区  · 15 年前

    我必须修改一个用C编写的WPF应用程序,它显示一个包含许多子模型或部件的复杂3D模型。当用户通过备用用户界面机制选择一个零件时,我想旋转、缩放或移动场景,以便子模型进入视图。没有完全隐藏的子模型(即主模型内部)。

    最好的方法是什么?

    作为进一步的信息,模型没有真正的顶部或底部。它是一个分子的三维表示,用户选择一个需要“滚动到视图”的原子。

    1 回复  |  直到 15 年前
        1
  •  1
  •   user21714    15 年前

    获取子模型边界体积的中心(或质心)。旋转相机以查看中心。移动或缩放视图,直到子模型边界体积占据屏幕的预定义部分。这涉及到求解与观察体积和边界体积相关的简单线性方程。如果您的边界体积是最小边界框,则相当容易。

    编辑

    在这种情况下,如果你先谷歌搜索,你可能会过得更好。您所说的特定功能通常称为 “变焦配合” . 如果您进行一些谷歌搜索,我相信您会发现一些关于实现的深入讨论,这将比我在这里做得更好。解释要求您理解屏幕坐标和世界坐标之间的转换以及它们之间的关系。