【问题标题】:Algorithm to zoom into mouse(OpenGL)放大鼠标的算法(OpenGL)
【发布时间】:2010-06-06 03:14:44
【问题描述】:

我有一个左上角坐标系的 OpenGL 场景。当我 glScale 它从左上角的(0,0)放大。我希望它从鼠标的坐标(相对于 OGL 框架)放大。这是怎么做的? 谢谢

【问题讨论】:

    标签: c++ c opengl


    【解决方案1】:

    我相信这可以分四步完成:

    1. 使用您的窗口系统(即 GLUT 或 SDL)具有的任何功能查找鼠标的 x 和 y 坐标,并使用 gluUnProject 获取与这些窗口坐标对应的对象坐标
    2. 平移 (x,y,0) 以将原点放在这些坐标处
    3. 按所需向量 (i,j,k) 缩放
    4. 翻译 (-x,-y,0) 将原点放回左上角

    【讨论】:

      【解决方案2】:

      我使用 glortho 进行了平滑放大。我的解决方案的骨架是

      glortho(初始视口 x、y 和大小)
      glcalllist(我的显示列表)
      渲染
      .
      .
      循环逐渐转到最终视口坐标/大小。实现您的时间和 FPS 要求
      .
      .
      glortho(最终视口 x、y 和大小)
      glcalllist(我的显示列表)
      渲染

      希望您能大致了解一下。几乎没有其他方法可以实现这一点,但我发现 glortho 方法最容易理解。

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 1970-01-01
        • 2011-06-23
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        相关资源
        最近更新 更多