放大鼠标的算法(OpenGL)
Posted
技术标签:
【中文标题】放大鼠标的算法(OpenGL)【英文标题】:Algorithm to zoom into mouse(OpenGL) 【发布时间】:2010-06-06 03:14:44 【问题描述】:我有一个左上角坐标系的 OpenGL 场景。当我 glScale 它从左上角的(0,0)放大。我希望它从鼠标的坐标(相对于 OGL 框架)放大。这是怎么做的? 谢谢
【问题讨论】:
【参考方案1】:我相信这可以分四步完成:
-
使用您的窗口系统(即 GLUT 或 SDL)具有的任何功能查找鼠标的 x 和 y 坐标,并使用 gluUnProject 获取与这些窗口坐标对应的对象坐标
平移 (x,y,0) 以将原点放在这些坐标处
按所需向量 (i,j,k) 缩放
翻译 (-x,-y,0) 将原点放回左上角
【讨论】:
【参考方案2】:我使用 glortho 进行了平滑放大。我的解决方案的骨架是
glortho(初始视口 x、y 和大小) glcalllist(我的显示列表) 渲染 . . 循环逐渐转到最终视口坐标/大小。实现您的时间和 FPS 要求 . . glortho(最终视口 x、y 和大小) glcalllist(我的显示列表) 渲染
希望您能大致了解一下。几乎没有其他方法可以实现这一点,但我发现 glortho 方法最容易理解。
【讨论】:
以上是关于放大鼠标的算法(OpenGL)的主要内容,如果未能解决你的问题,请参考以下文章